これに似たセットアップを持つユーザー用のデータベーステーブルがあります。
+---------------------+--------------+------+-----+------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------------+--------------+------+-----+------------+----------------+
| id_user | int(5) | NO | PRI | NULL | auto_increment |
| login | varchar(50) | NO | | | |
| password | varchar(50) | NO | | | |
| address | varchar(255) | NO | | NULL | |
+---------------------+--------------+------+-----+------------+----------------+
住所フィールドは非 null に設定されており、デフォルトは null であるため、実質的に住所フィールドが必須になるはずです。
しかし、次のようなクエリを実行すると:
INSERT INTO mydatabase.users
SET
mydatabase.users.login='test_username',
mydatabase.users.password='test_password'
空のスペースに設定されているアドレス フィールドについて文句を言うことなく、ユーザーを正常に保存します。
何が原因でしょうか? このような状況ではエラーが発生することが予想されます。MySQL 5.5 および 5.6 で試しました。