防止删除数据库中的特定行

Fly*_*s00 1 mysql sql triggers

我有一个链接到数据库的网站.当用户登录时,他们可以删除称为类别的内容.该网站创建一个预准备语句并从数据库中删除此类别.

我希望能够阻止删除具有特定名称或ID的类别.这很简单,可以使用jquery进行检查,但我想通过在数据库中添加一个检查来添加另一层安全性.情侣问题......

触发还是程序?我以前从未使用过程序,而且从触发器的触发器经验来看,我不知道如何处理这个问题.假设可以使用触发器,我将如何删除该类别?然后,我将如何阻止数据库中的该行被删除?

首先,我有一个触发器的代码.

delimiter $$
    CREATE TRIGGER category_delete BEFORE DELETE ON categories
        FOR EACH ROW
            BEGIN

            END$$
delimiter ;
Run Code Online (Sandbox Code Playgroud)

Boh*_*ian 6

从触发器中抛出异常以中止删除:

delimiter $$
CREATE TRIGGER category_delete BEFORE DELETE ON categories
FOR EACH ROW
BEGIN
    IF old.id = 5 THEN -- use whatever condition you need
        SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'May not delete id 5';
    END IF;
END$$
delimiter ;
Run Code Online (Sandbox Code Playgroud)