[mysql] sql_mode

有關資料庫的討論, 都可以在這發表哦~~
回覆文章
arvin
文章: 21
註冊時間: 2009年 2月 16日, 15:00

[mysql] sql_mode

文章 arvin »

MySQL的sql_mode模式,mysql5.0版本以上支援了三種sql_mode模式,如下:

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

預設是:ANSI模式,請改成 STRICT_TRANS_TABLES
頭像
tim
文章: 1380
註冊時間: 2008年 11月 26日, 00:49

Re: [mysql] sql_mode

文章 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')
;

若將第一行拿掉, 則無法成功寫入.
多多留言, 整理文章, 把經驗累積下來.....
回覆文章