gpt4 book ai didi

MySQL insert on duplicate key update PK AI

转载 作者:行者123 更新时间:2023-11-29 03:43:27 24 4
gpt4 key购买 nike

我有这种结构的测试表:

CREATE TABLE IF NOT EXISTS `test` (
`id_pc` int(11) NOT NULL AUTO_INCREMENT,
`id_vendor` int(11) NOT NULL,
`id_product` int(11) NOT NULL,
`test` int(11) NOT NULL,
PRIMARY KEY (`id_pc`),
UNIQUE KEY `id_vendor` (`id_vendor`,`id_product`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

如您所见,UQ key 设置在与 PK(即 AI)不同的 2 列上。

简单的测试查询:

INSERT INTO test(id_vendor, id_product, test) 
VALUES (1,1,1) ON DUPLICATE KEY UPDATE test = 1;

每次我运行查询时,它都会增加 AUTO_INCREMENT 值(因此没有插入,只有更新)。这是正常行为还是我遗漏了什么?

最佳答案

让我们从另一个角度来看这个主题:MySQL 不会重置表的 AUTO_INCREMENT 值,除非您告诉它(例如,通过 ALTER TABLETRUNCATE TABLE 查询)。在您的情况下,它显然需要使用一个值,以便它可以在确定它是重复项之前组合插入内容。

还有:

  • 如果存在重复键,更改不属于任何键的列的值将无济于事。
  • 通过 AUTO_INCREMENT 获得的值应该是无意义的。如果您担心差距,则说明您使用了错误的工具。

关于MySQL insert on duplicate key update PK AI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10171565/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com