gpt4 book ai didi

mysql - SQL - 通过检查两列来更新或插入

转载 作者:搜寻专家 更新时间:2023-10-30 22:11:18 24 4
gpt4 key购买 nike

我对 SQL 有点陌生,所以我希望这不会成为一个愚蠢的问题。我正在尝试创建一个调度程序,其中的表是这样的:

event_id    worker_id    date            shift_type
1 1 2014-01-01 Labour Day Shift
2 1 2014-01-02 Labour Night Shift
3 2 2014-01-01 Engineer Day Shift
4 2 2014-01-02 Engineer Night Shift
5 3 2014-01-01 Electrician Day Shift
6 3 2014-01-02 Electrician Day Shift

如您所见,我将每个“轮类”视为一个事件。当我插入数据库时​​,我想要一种方法来检查“worker_id”和“date”是否已经存在于同一行下的表中,如果存在,则使用 UPDATE 而不是 INSERT。请注意,“worker_id”或“date”都不是唯一的,但是在一行中两者的组合将是唯一的。

最佳答案

您想要重复键 更新。但首先,您需要一个关于 worker_iddate 的唯一索引:

create unique index idx_table_worker_date on table(worker_id, date);

insert into table(worker_id, date, shift_type)
values (@worker_id, @date, @shift_type)
on duplicate key update shift_type = values(shift_type);

table 是您的表名的占位符。以 @ 开头的变量是您要插入的值的占位符。

关于mysql - SQL - 通过检查两列来更新或插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27808276/

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