gpt4 book ai didi

php - 根据另一个表mysql的顺序动态更改表数据

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

mysql 新手,需要一些帮助!我有 2 个表 - 表 A 和表 B,其设置如下:

表 A - 事件

Event   | Date       |  Time
=====
1 | 2014-07-06 | 9am
2 | 2014-08-08 | 10am
3 | 2014-10-10 | 10am

表 B - 位置

Event   | Date       |  Description | Directions*
=====
1 | 2014-08-08 | Grand Canyon | bar
2 | 2014-10-06 | Devils Tower | foo
3 | 2014-07-06 | Pacific Park | foo
3 | 2014-07-06 | Universal Studios | foo

现在我遇到的麻烦是如何正确地重新排序或交换表 B 位置中的值。根据表A-事件。如何更新位置表以正确更改?

基本上我需要找到所有以前的事件值并用新的事件值更新它们。

这是表 B 的结果 - 当表 A 事件更改时我希望看到的位置。

表 B - 位置

Event | Date         |  Description | Directions
=====
1 | 2014-07-06 | Pacific Park | foo
1 | 2014-07-06 | Universal Studios | foo
2 | 2014-08-08 | Grand Canyon | bar
3 | 2014-10-06 | Devils Tower | foo

我忘了提及,我需要能够循环并找到所有实例。还有

最佳答案

如果您使用的是 InnoDB 存储引擎,则可以在外键约束定义上指定 ON UPDATE CASCADE 规则:

ALTER TABLE `location`
ADD CONSTRAINT FK_location_event (event) REFERENCES event (event)
ON UPDATE CASCADE;

然后(只要 session 中未禁用 FOREIGN_KEY_CHECKS),当您发出 UPDATE 语句来更改 event 表中 event 列的值时,location 表中的相关行也会被修改。

例如,如果您发出此声明:

UPDATE `event` SET `event` = 4 WHERE `event` = 1;

这大致相当于执行这两个语句:

UPDATE `event` SET `event` = 4 WHERE `event` = 1;
UPDATE `location` SET `event` = 4 WHERE `event` = 1;

关于php - 根据另一个表mysql的顺序动态更改表数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24375594/

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