我正在运行以下查询...我遇到的问题是,它将id字段正确地保存在第0-27行,但随后又尝试复制第0行。有没有想过为什么要复制第0行?
INSERT INTO
deal (`id`, `site_id`)
VALUES (NULL, 1)
ON DUPLICATE KEY UPDATE `id` = NULL,`site_id` = 1发布于 2011-07-17 21:49:19
您还可以显式地将NULL或0赋给列以生成序列号。
因此,实际上,输入(0,'whatever')被视为('the next autoincrement id','whatever')。就MySQL而言,没有重复的关键问题。您可以使用NO_AUTO_VALUE_ON_ZERO绕过此步骤。请注意,不推荐使用0作为标识符。
发布于 2011-07-17 21:17:26
在MySQL中,主键不能为空,因此您的UPDATE id = NULL被强制转换为UPDATE id = 0。
另请参阅:http://www.xaprb.com/blog/2009/09/12/the-difference-between-a-unique-index-and-primary-key-in-mysql/
https://stackoverflow.com/questions/6724012
复制相似问题