我有三个表: A,B,C
A-B = 1:M关系
B-C = 1:1关系
我在表A上这样创建了一个触发器:
DELIMITER $$
CREATE TRIGGER after_tableA_insert
AFTER INSERT
ON tableA
FOR EACH ROW
BEGIN
-- Insert multiple records
-- Insert into table B (id, foo) values (NULL,v)
END$$
DELIMITER ;
插入后,表B上还会有一个触发器:
DELIMITER $$
CREATE TRIGGER after_tableB_insert
AFTER INSERT
ON tableB
FOR EACH ROW
BEGIN
-- insert into tableC values (NEW.id, NEW.foo)
END$$
DELIMITER ;
表A上的单个插入将触发表B上的多个插入。 在表B上单次插入将在表C上单次插入。
我的问题是,以这种方式实现这些“波纹”触发器是合理的,因为我知道可以将值批量插入表中,而不是一个接一个地插入。单插入是有意义的,但是我不确定是否可以在更大范围内使用。
此外,如果批量插入记录而不是简单插入一条记录,数据库引擎将如何执行这些操作?有区别吗?