如何使用 TRIGGER 创建 2 个存档?
How to create 2 archives using a TRIGGER?
要从我的 table 命名存储创建存档,我想备份一行并将其存储在特定 table(命名:审计)之前 更新。
然后我想备份同一行并将其存储在特定的 table(命名为:histo) 更新之后。
我想到了一个触发器。
像这样,但是不行,因为有2个INSERT INTO
BEGIN
IF (NEW.storage_0 != OLD.storage_0 OR NEW.storage_1 != OLD.storage_1)
THEN
INSERT INTO audit(id,Date_insert,name,storage_1,storage_2) VALUES (OLD.id,OLD.Date_insert,OLD.name,OLD.storage_1,OLD.storage_2);
INSERT INTO histo(id,Date_insert,name,storage_1,storage_2) VALUES (NEW.id,NEW.Date_insert,NEW.name,NEW.storage_1,NEW.storage_2);
ELSEIF (NEW.Date_insert IS NULL)
THEN
INSERT INTO audit(id,Date_insert,name,storage_1,storage_2) VALUES (OLD.id,OLD.Date_insert,OLD.name,OLD.storage_1,OLD.storage_2);
INSERT INTO histo(id,Date_insert,name,storage_1,storage_2) VALUES (NEW.id,NEW.Date_insert,NEW.name,NEW.storage_1,NEW.storage_2);
END IF;
END
终于找到问题了。
如果要添加新行,请不要使用“id”字段。
要从我的 table 命名存储创建存档,我想备份一行并将其存储在特定 table(命名:审计)之前 更新。
然后我想备份同一行并将其存储在特定的 table(命名为:histo) 更新之后。
我想到了一个触发器。
像这样,但是不行,因为有2个INSERT INTO
BEGIN
IF (NEW.storage_0 != OLD.storage_0 OR NEW.storage_1 != OLD.storage_1)
THEN
INSERT INTO audit(id,Date_insert,name,storage_1,storage_2) VALUES (OLD.id,OLD.Date_insert,OLD.name,OLD.storage_1,OLD.storage_2);
INSERT INTO histo(id,Date_insert,name,storage_1,storage_2) VALUES (NEW.id,NEW.Date_insert,NEW.name,NEW.storage_1,NEW.storage_2);
ELSEIF (NEW.Date_insert IS NULL)
THEN
INSERT INTO audit(id,Date_insert,name,storage_1,storage_2) VALUES (OLD.id,OLD.Date_insert,OLD.name,OLD.storage_1,OLD.storage_2);
INSERT INTO histo(id,Date_insert,name,storage_1,storage_2) VALUES (NEW.id,NEW.Date_insert,NEW.name,NEW.storage_1,NEW.storage_2);
END IF;
END
终于找到问题了。 如果要添加新行,请不要使用“id”字段。