0

我正在使用 Mysql 并尝试在表上创建一个触发器,以防止删除或更新特定记录,例如我有一个表demo

id    username    password
1     dames       t312llok
2     sauce       12ff1fff1
3     hynes       5656166oo9

我想阻止记录:

id    username    password
1     dames       t312llok

通过使用触发器被删除或更新

4

1 回答 1

0

如果您使用的是 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 ;

另外...不要在数据库中存储密码。

于 2016-05-03T15:07:44.513 回答