gpt4 book ai didi

mysql - 插入后如何检查是否插入到另一个表中

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

我有两个实体提案部门。一个命题必须至少针对一个部门 (1-N),一个部门可以由 0-N 个命题作为目标。

因此,在我的数据库中,我有 3 个表:PROPOSITIONTARGETDEPARTMENT

我试图找到一种方法来确保在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 上的触发器不会起作用。

我找到的唯一解决方案是重组我的数据库:

  • 我在命题中添加了一个不能为 NULL 的字段 DEPARTMENT_NUMBER
  • 我在 TARGET 表上设置了一个触发器,以便在插入之前检查命题是否尚未针对其属性中的部门。

该方法会减慢数据库速度,但它确保尊重 (1-N) 关系

最佳答案

在我看来,执行此操作的最佳方法是在插入 Target 的 Proposition 上创建一个触发器。

检查此链接,它应该可以帮助您入门。 http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html

关于mysql - 插入后如何检查是否插入到另一个表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20537629/

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