通过使用Mysql触发器防止删除或更新记录表单

时间:2012-10-01 13:57:48

标签: mysql triggers

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

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

我想阻止记录:

id    username    password
1     dames       t312llok

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

1 个答案:

答案 0 :(得分:0)

如果您使用的是MySQL 5.5或更高版本,这很简单。

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 ;

对于更新,它是完全相同的代码,只需稍作调整。

SELECT Content 
FROM yourtable
WHERE Syndication_type = 1 -- your conditions
GROUP BY Content, Syndication_type 
HAVING COUNT(DISTINCT Syndication_publication) = 1

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