Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 插入后如何在另一个表中检查插入_Mysql_Database_Triggers - Fatal编程技术网

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结构。我知道触发器可以执行此插入,我从何处获得必须插入的值?这取决于提案的目标部门…我不知道插入什么,这取决于提案的目标部门!