如果我没有更新该列,请在 MySQL 触发器中获取 NEW.colname 的现有值



我使用的是mysql 8.0.23

我的表
CRETAE TABLE sample_table(
id INT AUTO_INCREMENT PRIMARY KEY,
col1 VARCHAR(10) DEFAULT NULL,
col2 VARCHAR(10) DEFAULT NULL
);

插入一行

INSERT INTO sample_table(col1, col2) VALUES('aaa','bbb');

插入后的表

col2

OLD hasall一行的旧值和NEWall列。

检查新旧是否不同

DELIMITER $$
CREATE TRIGGER sample_trigger BEFORE UPDATE ON sample_table
FOR EACH ROW 
BEGIN
IF OLD.col1 <> NEW.col1 THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = NEW.col1;
END IF;
END $$
DELIMITER ;

相关内容

最新更新