gpt4 book ai didi

MYSQL 插入、更新、删除

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

我有两个 MYSQL 表 casespivot

案例看起来像这样:

Idgame  Id
1 2
1 1
1 5
1 3
1 1
1 6
... ...
1 2

枢轴看起来像这样:

Idgame   Id   Icone
1 1 7
1 2 14
1 3 15
1 5 6
1 6 1

pivot 中的所有 ID 必须是cases 的不同 ID

用户可以在cases中修改Id,因此当发生更改时我想更新pivot

1) 如果在 pivot 中还没有新的 Id,我想在 pivot 中添加一个新行,其中 Icone = 1(我将 1 设置为默认值)

2) 如果某些 ID 不再存在于 cases 中,我想在 pivot 中删除它们

3) 如果 Id 仍在 cases 中,我不会更改 pivot 中的任何内容

我正在尝试使用 REPLACE INTO 或 INSERT ON DUPLICATE KEY 来做到这一点,但我无法做到这一点...

我尝试了如下所示的方法。它几乎可以工作,但不执行删除(第2点):我在 pivot 中的 3 列(id、idgame 和 icone)上添加了 PRIMARY KEY。

REPLACE INTO `pivot` (id,idgame,icone)
SELECT DISTINCT cases.id, cases.idgame, pivot.icone
FROM `cases`
LEFT JOIN pivot ON (pivot.Idgame = cases.Idgame AND pivot.id = cases.id)
WHERE cases.Idgame = 1

是否可以仅通过一个请求来完成此操作?

最佳答案

是的,您可以在一个请求中完成所有这些操作。您必须使用MySQL 触发器存储过程

您可以为cases表编写删除后插入后更新后事件的触发器。< br/>

更多详情请引用:
http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html
http://www.mysqltutorial.org/sql-triggers.aspx

关于MYSQL 插入、更新、删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24611419/

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