[英]How to check insertion in another table after insertion
我有两个实体proposition
和department
。 命题必须针对至少一个部门(1-N),而一个部门可以针对0-N个命题。
所以在我的数据库,我有3个表: PROPOSITION
, TARGET
和DEPARTEMENT
。
我尝试找到一种方法来确保在PROPOSITION
插入一个命题之后,在TARGET
插入一个条目。 换句话说,我想确保(1-N)关系不会变成(0-N)关系。
有办法做到这一点与触发器? 还是应该更改数据库的结构?
提前致谢
[编辑]解决方案:
触发器无法完成任务,因为TARGET
的插入取决于用户异步输入的值。 例如,如果命题1以部门2和部门3为目标,则在我的表中,数据为:
PROPOSITION
1
TARGET
1 2
1 3
DEPARTMENT
1
2
3
触发方式:在插入内容后,在PROPOSITION
上设置一个触发方式。 我们做什么 ? 等待插入TARGET
吗? 在TARGET
为部门插入默认值? 因此,触发PROPOSITION
不会起作用。
我发现的唯一解决方案是重组数据库:
DEPARTMENT_NUMBER
,该字段不能为NULL。 TARGET
表上设置了一个触发器,以在插入之前检查该命题尚未针对其属性中的部门进行检查。 该方法减慢了数据库速度,但可以确保遵守(1-N)关系
在我的观点中,执行此操作的最佳方法是在Proposition上创建一个触发器,该触发器插入到Target中。
检查此链接,它应该使您入门。 http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.