我有三个关联的表。类别包含用户输入值的选项,简化如下...
group
-----
id
name
active
option
------
id
group_id
name
active
user_option
-----------
id
opton_id
value
active
我的问题是处理群组停用的情况的最佳方法是什么。我过去所做的是查找选项ID,其中group_id =正在停用的组ID。然后我获取返回的id的列表并停用user_option,如...
set active=0 where option_id in (list of ids)
然后我更新选项,然后我更新组。
我很感兴趣是否有办法用触发器或级联来做这种事情。我从未在MySQL中使用过,并且认为我会看到解决这个问题的最佳方法是什么。
答案 0 :(得分:0)
将ON UPDATE CASCADE
添加到USER_OPTION.active
列上的外键应该是实现所需功能所需的全部内容per the documentation。假设已经存在外键约束,请使用:
ALTER TABLE
MODIFY active FOREIGN KEY fk_name (active) REFERENCES OPTION(active) ON UPDATE CASCADE