我正在使用 Mysql 并尝试在表上创建一个触发器,以防止删除或更新特定记录,例如我有一个表demo
id username password
1 dames t312llok
2 sauce 12ff1fff1
3 hynes 5656166oo9
我想阻止记录:
id username password
1 dames t312llok
通过使用触发器被删除或更新
如果您使用的是 MySQL 5.5 或更高版本,这很简单。
DELIMITER $$
DROP TRIGGER IF EXISTS demo_bd $$
CREATE TRIGGER demo_bd BEFORE DELETE ON demo FOR EACH ROW
BEGIN
IF OLD.id = 1 THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'This magical user cannot be deleted';
END IF;
END $$
DELIMITER ;
对于更新,它的代码完全相同,只是稍作调整。
DELIMITER $$
DROP TRIGGER IF EXISTS demo_bu $$
CREATE TRIGGER demo_bu BEFORE UPDATE ON demo FOR EACH ROW
BEGIN
IF OLD.id = 1 THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'This magical user cannot be updated';
END IF;
END $$
DELIMITER ;
另外...不要在数据库中存储密码。