MySQL 5.1.60 を使用しています
そして、「フォルダ」というテーブルがあります
CREATE TABLE `folder` (
`folder_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(50) DEFAULT NULL,
`parent_id` int(10) unsigned DEFAULT NULL,
`update_date` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`folder_id`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8
そして、それに値を挿入します。
INSERT INTO `folder` (`name`) VALUES ('test_name');
その直後に選択クエリを実行します
クエリは
SELECT * FROM folder f WHERE f.folder_id IS NULL
しかし、驚くべきことに、実際には最後に挿入された行が返されます (最初の実行時のみ)。
MySQLでこの動作が発生する理由。