我不是数据库相关部分的经验丰富的人。这是我的疑问。我正在使用 MySQL 我有两个表假设
- 项目 (列:- pid、folder_id、p_name)
- 文件夹(列:- folder_id,名称)
我为表项目创建了两个触发器
- trgr_project_before_insert
- trgr_project_before_update
并且与文件夹和项目存在外键关系。即表中的folder_idfolder
指的是“项目”表。我在项目表中使用“ Set null ”设置“ ON DELETE ”操作。即当在表中删除“ folder_id ”时, MySQL 将为那些已删除“ folder_id ”的行设置 NULLfolder
在我的“trgr_project_before_update”触发器中,我有一些代码可以检查
NEW.folder_id IS NULL THEN
--some code are here
END IF;
当我从文件夹表中删除一个“ folder_id ”时,所有行都将“ folder_id ”设置为NULL,我认为它正在更新表。但是触发器“trgr_project_before_update”不起作用(我检查中的代码)为什么会这样。