gpt4 book ai didi

mysql - 通过一个触发器向多个表插入数据

转载 作者:行者123 更新时间:2023-11-29 07:46:08 25 4
gpt4 key购买 nike

我是 SQL 和触发器的新手,所以我的问题可能很简单,但经过大量搜索后我不知道该怎么做。

所以,我有一张 table ,里面有玩家。当创建一个玩家时,我想将新数据复制到2个表中。有些字段属于“产品”,有些字段属于“产品描述”。

问题是我无法使用触发器将信息插入第二个表(产品描述)中。我了解到我不能对同一操作使用多个触发器,因此我需要使用一个触发器。

这是我到目前为止所得到的代码:

BEGIN
INSERT INTO product (product_id, manufacturer_id)
SELECT player.id,player.team_id
FROM player WHERE NOT EXISTS (SELECT * FROM product
WHERE product.product_id = player.id);


INSERT INTO product_description (product_id, name, description)
SELECT player.id,CONCAT_WS(' ',player.first_name,player.last_name),player.about
FROM player WHERE NOT EXISTS (SELECT * FROM product
WHERE product.product_id = player.id);
END

任何帮助将不胜感激。

谢谢 :)

最佳答案

我知道您想要执行级联插入之类的操作,因此我编写了这段有效的代码。与你的代码的区别在于,你使用END,我使用COMMIT;

BEGIN;

INSERT INTO t1 (t) VALUES ("Test");

INSERT INTO t2 (id, t) (
SELECT id, CONCAT(t, id)
FROM t1
WHERE NOT EXISTS (
SELECT id
FROM t2
WHERE t1.id = t2.id
)
);

INSERT INTO t3 (id, t) (
SELECT id, CONCAT(t, id)
FROM t2
WHERE NOT EXISTS (
SELECT id
FROM t3
WHERE t2.id = t3.id
)
);

COMMIT;

这三个表具有相同的结构:- ID:INT(11)-t:VARCHAR

级联插入应该只插入不存在的记录。

关于mysql - 通过一个触发器向多个表插入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27746411/

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