更新后的SQL触发器将数据插入另一个表
我有两张桌子。一个是客户信息,另一个是更新日志。我想创建一个触发器,该触发器将在更新客户信息后执行。如果更新了更新后的SQL触发器将数据插入另一个表,sql,triggers,insert,Sql,Triggers,Insert,我有两张桌子。一个是客户信息,另一个是更新日志。我想创建一个触发器,该触发器将在更新客户信息后执行。如果更新了cust\u name,Contact,则将cust\u no,cust\u name,Contact,Date添加到第二个表中。第二个表将有两行,其中包含旧数据和新数据。我的代码不起作用。我们将非常感谢您的帮助 CREATE TRIGGER update_trigger AFTER UPDATE ON CUSTOMER_info FOR EACH ROW BEGIN IF N
cust\u name,Contact
,则将cust\u no,cust\u name,Contact,Date
添加到第二个表中。第二个表将有两行,其中包含旧数据和新数据。我的代码不起作用。我们将非常感谢您的帮助
CREATE TRIGGER update_trigger
AFTER UPDATE ON CUSTOMER_info
FOR EACH ROW
BEGIN
IF NEW.cust_name <> OLD.cust_name || NEW.contact <> OLD.contact then
insert into update_log values
( OLD.cust_no,OLD.cust_name, OLD.contact, CURRENT_DATE);
insert into update_log values
( NEW.cust_no,NEW.cust_name, NEW.contact,CURRENT_DATE);
END IF
END
创建触发器更新\u触发器
更新客户信息后
每行
开始
如果NEW.cust_name OLD.cust_name | | NEW.contact OLD.contact然后
插入到更新日志值中
(旧.客户编号,旧.客户名称,旧.联系人,当前日期);
插入到更新日志值中
(新客户编号、新客户名称、新联系人、当前日期);
如果结束
结束
如果使用MSSQL,可以使用该触发器:
CREATE TRIGGER update_trigger
ON CUSTOMER_info
FOR update AS
BEGIN
IF UPDATE (cust_name) OR UPDATE (contact)
BEGIN
INSERT INTO update_log (
cust_no
,Cust_name
,Contact
,Date
)
SELECT cust_no
,cust_name
,contact
,GetDate()
FROM INSERTED
INSERT INTO update_log (
cust_no
,Cust_name
,Contact
,Date
)
SELECT cust_no
,cust_name
,contact
,GetDate()
FROM DELETED
END
END
GO
请标记-这是MySql吗?请限定“不工作”-错误等。请尝试明确指定列,即,
插入更新日志(col1,col2,…)值(…)
-它们可能与您假设的顺序不同。