我正在使用休假代码来防止查询一次删除多于一行的内容,但是同一触发条件应该允许删除打算删除一行的查询。
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删除;
因为全局变量不是空的。
请,如果有人可以帮助我... 非常感谢你!