2013-02-27 37 views
-1

我试图更新当某些东西插入到table1时应该为空的contractnum的值。我想将它更新到field2中的任何一个始终是唯一的数字。MySQL触发器在插入条目时从列b的值更新a列

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 ; 
+2

你的问题是什么? – 2013-02-27 19:31:12

回答

0

你有一对夫妇的语法问题:

  1. 您需要使用NEW前缀来引用该行的列值插入
  2. 您需要终止某些行与分号

这应该是更接近你需要的东西:

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 ; 
+0

非常感谢。我对这个SQl触发器有点新了,而且我知道这是一些语法问题。我尝试了很多不同的方式。谢谢!!! – user2066533 2013-02-27 23:27:05

相关问题