gpt4 book ai didi

MySql关于重复记录更新问题

转载 作者:行者123 更新时间:2023-11-30 00:03:01 25 4
gpt4 key购买 nike

我有一个场景,我正在插入一条记录,并且如果遇到重复的主键,我想更新记录。现在,我有一个 X 列,它不是主键的一部分。我希望我的记录得到更新当且仅当 X 的值与当前值不同时。

现在,即使 X 相同,我的记录也会更新。仅当某些列不同时,如何编写查询来实现重复更新?当前查询是

INSERT INTO table (a, b, c, d, X) values (10, 11, 12, 13, 153.0 ) ON DUPLICATE KEY UPDATE parameter_value = NEWX , timestamp = CURRENT_TIMESTAMP() 

其中,[a,b,c,d] 是我的主键,X 是值。我还希望如果 X 相同则时间戳保持相同,如果 X 更改则时间戳更改

最佳答案

首先,如果您想使用重复键更新,那么您需要一个适当的唯一索引。我不确定这只是 X,还是全部四列。创建唯一索引很容易,例如:

create unique index idx_table_x on table(x);

或者 在表(a, b, c, d, x)上创建唯一索引idx_table_a_b_c_d_x;

那么我认为这个声明将满足您的要求:

INSERT INTO table(a, b, c, d, X, timestamp)
values (10, 11, 12, 13, 153.0, CURRENT_TIMESTAMP())
ON DUPLICATE KEY UPDATE a = values(a);

它将忽略值相同的记录。

关于MySql关于重复记录更新问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24856407/

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