1 頁 (共 1 頁)

[mysql] sql_mode

發表於 : 2021年 10月 27日, 16:21
arvin
MySQL的sql_mode模式,mysql5.0版本以上支援了三種sql_mode模式,如下:

ANSI 寬鬆模式,對插入資料進行校驗,如果不符合定義型別或長度,對資料型別調整或截斷儲存,報warning警告。
TRADITIONAL 嚴格模式,當向mysql資料庫插入資料時,進行資料的嚴格校驗,保證錯誤資料不能插入,報error錯誤。用於事物時,會進行事物的回滾。
STRICT_TRANS_TABLES 嚴格模式,進行資料的嚴格校驗,錯誤資料不能插入,報error錯誤。

預設是:ANSI模式,請改成 STRICT_TRANS_TABLES

Re: [mysql] sql_mode

發表於 : 2021年 10月 27日, 16:23
tim
可以參考這個範例(sqlfiddle 預設不是 ANSI):

http://sqlfiddle.com/#!9/62d528/1

代碼: 選擇全部


SET SESSION sql_mode = 'ANSI';  /* if disable this sql_mode setting, no data will be inserted. */


CREATE TABLE books
	(`id` int, `booksn` VARCHAR(5))
;

	
INSERT INTO books
	(`id`, `booksn`)
VALUES
	(1, '1234567890')
;

若將第一行拿掉, 則無法成功寫入.