讓我們創建表爲什麼MySQL將沒有數據隱式轉換爲空字符串?
CREATE TABLE IF NOT EXISTS `test` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `data1` varchar(64) NOT NULL, `data2` varchar(64) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8
和粘貼一些數據
INSERT INTO `test` (`data1`) VALUES ('111');
我們沒有指定data2
但行已經插入。字段data2
的值爲空字符串。爲什麼插入沒有失敗?這是一個錯誤嗎?
的MySQL版本14.14 DISTRIB 5.6.19,爲Debian的Linux-GNU(x86_64的)
你的sql_mode設置爲什麼? 你可以發現,通過檢查'show variables like'sql_mode''你的sql_mode可能被設置爲空,這允許。但你會得到一個警告。 – Jaylen 2014-11-25 00:14:56
我係統中的sql_mode是NO_ENGINE_SUBSTITUTION。只發現一個變量。它的默認配置 - 我沒有改變任何東西,因爲我的系統上的安裝 – 2014-11-25 00:25:44