首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL:在主键的重复更新问题上插入

问MySQL:在主键的重复更新问题上插入
EN

Stack Overflow用户
提问于 2011-07-17 21:14:06
回答 2查看 653关注 0票数 0

我正在运行以下查询...我遇到的问题是,它将id字段正确地保存在第0-27行,但随后又尝试复制第0行。有没有想过为什么要复制第0行?

代码语言:javascript
复制
INSERT INTO
        deal (`id`, `site_id`)
        VALUES (NULL, 1)
ON DUPLICATE KEY UPDATE `id` = NULL,`site_id` = 1
EN

回答 2

Stack Overflow用户

发布于 2011-07-17 21:49:19

从manual

您还可以显式地将NULL或0赋给列以生成序列号。

因此,实际上,输入(0,'whatever')被视为('the next autoincrement id','whatever')。就MySQL而言,没有重复的关键问题。您可以使用NO_AUTO_VALUE_ON_ZERO绕过此步骤。请注意,不推荐使用0作为标识符。

票数 2
EN

Stack Overflow用户

发布于 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/

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6724012

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档