【问题标题】:MySQL trigger to update a column a from value of column b when an entry is inserted [closed]插入条目时,MySQL触发器从b列的值更新a列[关闭]
【发布时间】:2025-12-02 14:05:01
【问题描述】:

我正在尝试更新 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 ;

【问题讨论】:

  • 你的问题是什么?

标签: mysql triggers insert


【解决方案1】:

你有几个语法问题:

  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 ;

【讨论】:

  • 非常感谢。我对这个 SQl Triggers 有点陌生,我知道它与语法有关。我尝试了很多不同的方式。谢谢!!!
最近更新 更多