触发以防止在同一查询中删除多行(mysql)

时间:2018-11-20 10:06:18

标签: mysql triggers

我正在使用休假代码来防止查询一次删除多于一行的内容,但是同一触发条件应该允许删除打算删除一行的查询。

DELIMITER //
DROP TRIGGER IF EXISTS preventMultipleDeletion //
CREATE TRIGGER preventMultipleDeletion
  BEFORE DELETE ON test
  FOR EACH ROW   
    BEGIN
       IF( @rows_being_deleted IS NULL ) THEN 
         SET @rows_being_deleted =  1;

       ELSE            
         SET @rows_being_deleted = NULL;

         SIGNAL SQLSTATE '45000' 
         SET MESSAGE_TEXT = 'Cannot delete more than one row per time!';
       END IF;
  END //
DELIMITER ;

我在其他帖子中找到此代码: MySQL Before Delete trigger to avoid deleting multiple rows

但是这段代码使我陷入另一个问题。每次我尝试删除不同查询中的两行时,第二个查询将永远无法工作。

EX:

从测试WHERE ID = 1删除;

从测试WHERE ID = 2删除;

因为全局变量不是空的。

请,如果有人可以帮助我... 非常感谢你!

0 个答案:

没有答案