我使用的是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查询
查询为
SELECT * FROM folder f WHERE f.folder_id IS NULL但令人惊讶的是,它实际上返回了最后插入的行(仅在第一次运行时)。
为什么这种行为会发生在MySQL中。
发布于 2013-07-17 14:05:37
实际上,这是您正在使用的mysql 5.1.60中的一个错误,并且在mysql的早期版本中不是问题。
但是,您可以通过运行以下命令在当前版本的mysql>中修复它: mysql SET sql_auto_is_null=0;
发布于 2013-07-17 13:45:30
检查"innodb_flush_log_at_trx_commit"系统变量并将其设置为1,然后重试
https://stackoverflow.com/questions/17691757
复制相似问题