これはバグではなく機能かもしれないので、私はMariaDBのJiraの代わりにそれをSOに含めると考えました。Insertでのデフォルト値の自動キャスト
昨日、HomebrewのMariaDBのインストールを10.1.23から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はちょうど私がis_some_toggleするデフォルト値を設定した後、0)
Field 'is_some_toggle' doesn't have a default value
エラー2()
Incorrect integer value: '' for column 'phone_number' at row 1
を挿入することが想定されます
これは機能だと思いますが、バグではありません。私は彼らのchangelogsの10.2シリーズを見てきました。何も飛び出さないと思っていますが、たくさんありますので、私はそれを見逃していました。私はOLD_SQL用のサーバー設定を見ましたが、それは私が探していたようではありませんでした。何かご意見は?
MacOSのシエラ10.12.5はところで
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」を提供してください。 –