Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更新后的SQL触发器将数据插入另一个表_Sql_Triggers_Insert - Fatal编程技术网

更新后的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,…)值(…)
-它们可能与您假设的顺序不同。