小ネタです
下記のようなテーブルに、空文字('')をINSERTするとどうなるでしょうか?
※名前とかは適当につけました。ご了承ください。
create table int_test(
id bigint(20) DEFAULT NULL,
test_id int(11) DEFAULT NULL,
name varchar(255) DEFAULT NULL);
私、最初はNULL
が入ると思ってました。
だって、DEFAULT NULL
だし。。。
ところが・・・
実際に空文字をINSERTしてみました。
mysql> insert into int_test (id, test_id, name)
> values (1, 1, 'aaa'), ('', '', '');
Query OK, 2 rows affected, 2 warnings (0.01 sec)
Records: 2 Duplicates: 0 Warnings: 2
mysql> select * from int_test;
+------+---------+------+
| id | test_id | name |
+------+---------+------+
| 1 | 1 | aaa |
| 0 | 0 | |
+------+---------+------+
2 rows in set (0.00 sec)
なんと、0が入ってしまいました!
次から気をつけます。
バグを生んでしまったので懺悔のQiita投稿でした