MySQL:主键出现重复更新时插入问题

MySQL:主键出现重复更新时插入问题,mysql,Mysql,我正在运行以下查询。。。我遇到的问题是,它将id字段正确地保存为第0-27行,但随后尝试复制第0行。有没有想过为什么要复制第0行 INSERT INTO deal (`id`, `site_id`) VALUES (NULL, 1) ON DUPLICATE KEY UPDATE `id` = NULL,`site_id` = 1 MySQL中的主键不能为NULL,因此您的updateid=NULL被强制转换为updateid=0 另请参见:中的: 您还可以显式

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

INSERT INTO
        deal (`id`, `site_id`)
        VALUES (NULL, 1)
ON DUPLICATE KEY UPDATE `id` = NULL,`site_id` = 1

MySQL中的主键不能为NULL,因此您的
updateid=NULL
被强制转换为
updateid=0

另请参见:

中的:

您还可以显式地为列指定NULL或0以生成序列号


因此,有效地,输入
(0,'whatever')
被视为
('next autoincrement id','whatever')
。就MySQL而言,没有重复的关键问题。您可以通过使用绕过此选项。请注意,不建议使用
0
作为标识符。

什么是交易表?查询的目的是什么?站点id是否唯一?如果不是,重复键上的
有什么意义?每次插入都会得到一个新id。