INSERT 触发器,INSERT 多行
Trigger for INSERT, INSERTS multiple rows
我正在创建一个触发器,它将在我手动将数据插入表 A 后将数据插入表 B。
我目前的问题是,在向表 A 中插入多行后,表 B 将创建比需要更多的行。
例如向表 A 中插入 3 行数据将导致触发器向表 B 中插入 6 行。问题似乎是针对每次插入跟踪表 A 中每一行的触发器。
触发器如下
CREATE TRIGGER trigger1
AFTER INSERT ON tableA
FOR EACH ROW
INSERT INTO tableB(cust_id, name)
SELECT new.cust_id, new.name FROM tableA;
从 3 次插入 tableA 得到的两个表的输出如下。
表A
cust_id
name
0001
Frodo
0002
Sam
0003
Merry
表B
cust_id
name
0001
Frodo
0002
Sam
0002
Sam
0003
Merry
0003
Merry
0003
Merry
我目前正在寻找一种方法,让 tableA 中的 1 行在 tableB 中创建 1 行,并且在两个表中具有相似数量的行。
如有任何帮助或建议,我们将不胜感激。
for each row - 表示插入的每一行,而不是 insert..select insert..values 更合适
CREATE TRIGGER trigger1 AFTER INSERT ON tableA
FOR EACH ROW
INSERT INTO tableB(cust_id, name) values(new.cust_id, new.name);
我正在创建一个触发器,它将在我手动将数据插入表 A 后将数据插入表 B。
我目前的问题是,在向表 A 中插入多行后,表 B 将创建比需要更多的行。
例如向表 A 中插入 3 行数据将导致触发器向表 B 中插入 6 行。问题似乎是针对每次插入跟踪表 A 中每一行的触发器。
触发器如下
CREATE TRIGGER trigger1
AFTER INSERT ON tableA
FOR EACH ROW
INSERT INTO tableB(cust_id, name)
SELECT new.cust_id, new.name FROM tableA;
从 3 次插入 tableA 得到的两个表的输出如下。
表A
cust_id | name |
---|---|
0001 | Frodo |
0002 | Sam |
0003 | Merry |
表B
cust_id | name |
---|---|
0001 | Frodo |
0002 | Sam |
0002 | Sam |
0003 | Merry |
0003 | Merry |
0003 | Merry |
我目前正在寻找一种方法,让 tableA 中的 1 行在 tableB 中创建 1 行,并且在两个表中具有相似数量的行。
如有任何帮助或建议,我们将不胜感激。
for each row - 表示插入的每一行,而不是 insert..select insert..values 更合适
CREATE TRIGGER trigger1 AFTER INSERT ON tableA
FOR EACH ROW
INSERT INTO tableB(cust_id, name) values(new.cust_id, new.name);