0
我试图防止在更新中修改列。我有一个名为created_at
的列,它是一个时间戳,但我想锁定它。MySQL防止在一列中使用触发器修改数据
我试图创建一个BEFORE UPDATE TRIGGER
没有成功。
DROP TRIGGER IF EXISTS Users_creation_update_exception;
DELIMITER //
CREATE TRIGGER Users_creation_update_exception
BEFORE UPDATE
ON `Users` FOR EACH ROW
IF NEW.created_by <> (SELECT created_by FROM `Users` WHERE id = NEW.id LIMIT 1) THEN
SIGNAL SQLSTATE '45000'; // It says error here
END IF;
END//
DELIMITER ;
我不知道触发器是否是这类问题的正确答案。我已穿上我的FORIGN KEY
a ON UPDATE NO ACTION
。我想要一个类似的行为。
我查找了SIGNAL
页面的信息MySQL documentation。 MariaDB SIGNAL
page也是如此。
我不知道我在做什么错。
我在phpmyadmin的通过XAMPP与
- 服务器类型:MariaDB的
- Server版本:21年1月10日,MariaDB的 - mariadb.org二进制分发
我可以看到,我忘了写'BEGIN' – Chax
我会尽快更新,只要我回家。那么我会给你回馈。 – Chax
它的方式。抱歉耽搁了。 – Chax