1
デフォルト値を持たず、insert文で指定されていないフィールドに対して、MySQLが空の値を挿入するのを止める設定はありますか? 私はそれが無効な挿入ステートメントを拒否したいと思います。MySQLでデフォルト値なしのフィールドに対して空の値の自動挿入を無効にすることはできますか?
例 - I持ってMySQLで次の表:
CREATE TABLE `test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`val1` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
`val2` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
あなたはこのinsert文を実行した場合:から
Query OK, 1 row affected, 1 warning (0.00 sec)
応答:
INSERT INTO test (val2) VALUES('a');
あなたはこの応答を取得しますshow warnings
:
+---------+------+-------------------------------------------+
| Level | Code | Message |
+---------+------+-------------------------------------------+
| Warning | 1364 | Field 'val1' doesn't have a default value |
+---------+------+-------------------------------------------+
1 row in set (0.00 sec)
SELECT * FROM test
からの応答:
+----+------+------+
| id | val1 | val2 |
+----+------+------+
| 1 | | asdf |
+----+------+------+
1 row in set (0.00 sec)