MySQL触发器,用于在插入条目时从列b的值更新列a

MySQL触发器,用于在插入条目时从列b的值更新列a,mysql,triggers,insert,Mysql,Triggers,Insert,我试图更新contractnum的值,当有东西被插入到表1中时,它应该是空的。我想将其更新为field2中的任何字段,该字段始终是唯一的数字 DELIMITER // CREATE TRIGGER database1.Update_Contract_Num BEFORE INSERT ON database1.table1 FOR EACH ROW BEGIN /*Update contract Num when new doc gets inserted and copy the conten

我试图更新contractnum的值,当有东西被插入到表1中时,它应该是空的。我想将其更新为field2中的任何字段,该字段始终是唯一的数字

DELIMITER //
CREATE TRIGGER database1.Update_Contract_Num
BEFORE INSERT ON database1.table1
FOR EACH ROW
BEGIN
/*Update contract Num when new doc gets inserted and copy the contents of field1*/
IF contractnum IS NULL THEN
SET CONTRACTNUM = field2
END IF
END//
DELIMITER ;

您有几个语法问题:

  • 您需要使用
    NEW
    前缀来引用插入行的列值
  • 您需要使用分号终止某些行
  • 这应该更接近您的需要:

    DELIMITER //
    CREATE TRIGGER database1.Update_Contract_Num
    BEFORE INSERT ON database1.table1
    FOR EACH ROW
    BEGIN
      /*Update contract Num when new doc gets inserted and copy the contents of field1*/
      IF NEW.contractnum IS NULL THEN
        SET NEW.CONTRACTNUM = NEW.field2;
      END IF;
    END //
    DELIMITER ;
    

    你的问题是什么?非常感谢。我对这个SQl触发器有点陌生,我知道它和语法有关。我尝试了很多不同的方法。非常感谢。