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

时间:2013-02-27 19:30:01

标签: mysql triggers insert

我正在尝试更新contractnum的值,当将某些内容插入table1时,该值应为空。我想将它更新为任何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 ;

1 个答案:

答案 0 :(得分:0)

您有几个语法问题:

  1. 您需要使用NEW前缀来引用要插入的行的列值
  2. 您需要使用分号终止部分行
  3. 这应该更接近你的需要:

    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 ;