Mysql 插入后如何在另一个表中检查插入
我有两个实体Mysql 插入后如何在另一个表中检查插入,mysql,database,triggers,Mysql,Database,Triggers,我有两个实体命题和部门。一个提议必须针对至少一个部门(1-N),一个部门可以被0-N个提议针对 因此,在我的数据库中,我有3个表:PROPOSITION、TARGET和department 我试图找到一种方法来确保在命题中插入命题后,在目标中插入一个条目。换句话说,我想确保(1-N)关系不会变成(0-N)关系 有没有办法用扳机?还是应该更改数据库的结构 提前谢谢 [编辑] 解决方案: 触发器无法执行此任务,因为TARGET中的插入取决于用户异步输入的值。例如,如果提案1针对的是部门2和部门3,则
命题
和部门
。一个提议必须针对至少一个部门(1-N),一个部门可以被0-N个提议针对
因此,在我的数据库中,我有3个表:PROPOSITION
、TARGET
和department
我试图找到一种方法来确保在命题
中插入命题后,在目标
中插入一个条目。换句话说,我想确保(1-N)关系不会变成(0-N)关系
有没有办法用扳机?还是应该更改数据库的结构
提前谢谢
[编辑]
解决方案:
触发器无法执行此任务,因为TARGET
中的插入取决于用户异步输入的值。例如,如果提案1针对的是部门2和部门3,则在我的表格中,数据如下:
PROPOSITION
1
TARGET
1 2
1 3
DEPARTMENT
1
2
3
触发想法:在插入某个内容后,在命题上设置一个触发器??我们该怎么办?是否等待在目标中插入?是否在部门的TARGET
中插入默认值?
因此,命题
上的触发器不起作用
我找到的唯一解决方案是重组我的数据库:
- 我在命题中添加了一个不能为空的字段
DEPARTMENT\u NUMBER
李>
- 我在
TARGET
表上设置了一个触发器,以在插入之前检查命题是否已经在其属性中以部门为目标李>
该方法减慢了数据库的速度,但确保了(1-N)关系得到尊重在我看来,最好的方法是创建一个插入目标的命题触发器
检查此链接,它将帮助您开始。
您可以使用触发器来执行此操作。您不需要更改db结构。我知道触发器可以执行此插入,我从何处获得必须插入的值?这取决于提案的目标部门…我不知道插入什么,这取决于提案的目标部门!