0
這可能是一個功能,而不是bug,所以我認爲它包含在SO而不是MariaDB的Jira中。插入缺省值的自動轉換
昨天我把自己的MariaDB安裝在10.1.23的Homebrew上更新到了10.2.6。我所有的選擇仍然正常工作,但現在在我的遺留應用程序中,我在代碼「假定」MariaDB將設置默認值的插入時遇到一些錯誤。例如...
INSERT INTO table SET
email = '[email protected]', -- varchar
phone_number = '', -- bigint
ts = '2017-05-30 23:51:23', -- datetime
some_val = '689728' -- varchar
此代碼是之前工作正常,但自從我升級我現在明白了以下幾個錯誤...
錯誤1(is_some_toggle是TINYINT,而不是在上面的查詢中定義,假定MariaDB的只想插入0)
Field 'is_some_toggle' doesn't have a default value
錯誤2(後餘設置的默認值,以is_some_toggle)
Incorrect integer value: '' for column 'phone_number' at row 1
我猜這是一個功能,而不是一個錯誤。我查看了他們的changelogs 10.2系列,我沒有看到任何東西跳出來,但有很多,所以我可能錯過了它。我看到OLD_SQL的一個服務器配置,但這似乎並不是我想要的。有什麼想法嗎?
MACOS塞拉利昂10.12.5 BTW
CREATE TABLE `table` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`email` varchar(200) NOT NULL,
`phone_number` bigint(20) NOT NULL,
`some_val` varchar(6) NOT NULL,
`ts` datetime DEFAULT NULL,
`is_some_toggle` tinyint(1) NOT NULL,
PRIMARY KEY (`id`),
KEY `email_code` (`email`(15),`some_val`),
KEY `phone_number_code` (`phone_number`,`some_val`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
請提供'SHOW CREATE TABLE'。 –