gpt4 book ai didi

软删除前的MySQL检查

转载 作者:行者123 更新时间:2023-11-29 00:00:56 30 4
gpt4 key购买 nike

我正在使用 MySQL。我在 A 表上有一条记录,其中有一个软删除列:active,值为 0

此行链接到 11 个表。都具有相同的 active 列。

我需要确保A 上的记录被删除只有 11 个表中的所有引用也都active = 0 .

我知道我可以用这些查询编写一个 View 来确定我是否可以“删除”。但这是一个例子,IMO 不是很实用的解决方案。级联更新也不起作用,因为如果任何子项仍处于事件状态,我无法删除父行。

谢谢!

最佳答案

如果您像您所说的那样创建 active_view,这应该会起作用。只需将所有相关表的事件标志添加到 foreign_active 列中,就可以开始了。

CREATE TRIGGER before_update_student
BEFORE UPDATE ON student FOR EACH ROW
BEGIN
IF NEW.active = 0 AND (SELECT foreign_active FROM active_view
WHERE id = NEW.id) > 0
THEN
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'Cannot delete student when active roles exist.';
END IF;
END;

关于软删除前的MySQL检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29904276/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com