gpt4 book ai didi

mysql - mysql中同一行上的多个触发器操作

转载 作者:行者123 更新时间:2023-11-29 21:12:24 25 4
gpt4 key购买 nike

我在将数据插入到四个表中时遇到问题,这些表还引用包含所有四个表的identity_keys(自动增量)的fact_table。

我的目标:当通过我的第一个代码将数据插入到四个表中时,触发器应将递增的键值插入到同一行中名为 Corporate_sales_help 的事实表中。

+---------+---------+-------------+-----------+
| Time_ID | CPS_ID | COMPANY_ID | SECTOR_ID |
+---------+---------+-------------+-----------+
| 1 | 3 | 1 | 3 |
+---------+---------+-------------+-----------+

到目前为止我得到了什么:

数据可以插入到所有四个表中,并且键也会递增。递增的键的值被插入到事实表中,如下图所示

插入数据语句:

INSERT INTO corporate_sales_view (year) VALUES (2005);
-- test
INSERT INTO corporate_sales_view (headquarter, company_name) values ('LONDON' ,'ToysRuS');
-- headquarter
INSERT INTO corporate_sales_view (sector) values ('Toys');
-- sector
INSERT INTO corporate_sales_view (sales_in_usd, sales_local) values (200000, 200003);
-- sales

触发因素之一:

BEGIN
INSERT INTO corporate_sales_help (cps_id)
VALUES (new.cps_id);
END

到目前为止事实表中的结果: result_in_fact_table

我真正想看到的是所有值都应该在一行中。

我已经搜索了几个小时的关键字,例如“同一行上的多个触发事件/操作”、“多个插入同一行”等。但我找不到任何可以帮助找到解决方案的内容我的问题。

我为我糟糕的英语表达歉意。

最佳答案

问题在于您正在执行 INSERT。

因此每个触发器都会创建一个新行。

您可以使用 INSERT ... ON DUPLICATE KEY UPDATE,但在您的情况下,关键是什么?

无论如何,同一行中没有插入,您有更新。

我看到的问题是您的操作是完全独立的,并且您有独立的触发器。

你应该问自己:“填充一行的标准是什么?”然后实现一个触发器,该触发器考虑到如果您想要同一行上的数据,则必须更新而不是插入这一事实

<小时/>

真正的问题是,是什么将这些独立事件联系在一起?

我猜这不可能是时间顺序,因为如果2个用户同时在另外4个表中创建记录会发生什么?

因此,重点是确定将这些事件链接在一起的原因是什么,这可能会引导您找到某种关键。

在其他表中插入行的代码是一段代码?难道它不能将这些ID也插入到这个表中吗?

问候

关于mysql - mysql中同一行上的多个触发器操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36252638/

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