gpt4 book ai didi

PHP PDO 在重复键的情况下执行 2 个查询

转载 作者:行者123 更新时间:2023-11-28 23:25:57 24 4
gpt4 key购买 nike

我目前正在使用这个查询

insert into races(race_city_id, race_date, racers, division, elimination)
values (:race_city_id, :race_date, :racers, :division, :elimination)
on duplicate key update
race_city_id = values(race_city_id),
race_date = values(race_date),
racers = values(racers),
division = values(division),
elimination = values(elimination);

在 race_date、division 和 elimination 上使用唯一键。我目前正在使用 on duplicate key,但在找到重复键时,我需要删除新行并将其插入到 races(2 个查询)中,或者以某种方式重新生成该行的 id 字段并更新一些其中的字段。我正在使用 InnoDB 并且我已经读到当你更新一行时主键将被重新生成,但我的不是。 id 设置为自动递增,所以我不确定是否有办法重新生成 key 。

查询正确地更新了行,但我也只需要重新生成 key 。

最佳答案

将查询更改为:

replace into races(
race_city_id,
race_date,
racers,
division,
elimination
) values (
:race_city_id,
:race_date,
:racers,
:division,
:elimination
)

因为 replace into 的工作方式与 insert 完全相同,除了如果表中的旧行与 主键的新行具有相同的值唯一索引,在插入新行之前删除旧行,生成新的 id。

关于PHP PDO 在重复键的情况下执行 2 个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39339338/

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