Php 插入时触发多个表

Php 插入时触发多个表,php,mysql,phpmyadmin,Php,Mysql,Phpmyadmin,快速提问 在我的用户数据库中,我有5个单独的表,它们都包含不同的信息。4个表通过外键连接到第一个表的主键 当我在第一个主表上进行插入时,我想在其他4个表上触发行插入。我原以为在更新级联可以做到这一点,但在尝试后,我意识到它没有…我知道线索是在更新的名称 我还在同一个表上尝试了多个触发器,但都失败了,但我发现这也不可能 我计划做的是在第一个上扣动扳机,在第二个上扣动扳机,然后在第二个上扣动扳机,在第三个上扣动……等等 我只是想知道这是否是一件明智的事情,或者我是否错过了一个更好更简单的方法 非常感

快速提问

在我的用户数据库中,我有5个单独的表,它们都包含不同的信息。4个表通过外键连接到第一个表的主键

当我在第一个主表上进行插入时,我想在其他4个表上触发行插入。我原以为在更新级联可以做到这一点,但在尝试后,我意识到它没有…我知道线索是在更新的名称

我还在同一个表上尝试了多个触发器,但都失败了,但我发现这也不可能

我计划做的是在第一个上扣动扳机,在第二个上扣动扳机,然后在第二个上扣动扳机,在第三个上扣动……等等

我只是想知道这是否是一件明智的事情,或者我是否错过了一个更好更简单的方法


非常感谢任何帮助/建议

根据给定的信息,如果每个子表都要求父表中的每一行都有一行,则感觉数据库设计中可能存在缺陷。有一个原因是插入级联不存在;它通常被认为是没有意义的

首先想到的是子表实际上应该是父表的一部分;听起来好像是一对一的关系。从组织的角度和记录的大小来看,使用单独的表仍然是有意义的,但这是需要考虑的

如果没有一对一的关系,那么在子表中添加超出默认值的有意义数据的能力意味着可能需要更多的数据规范化。如果要添加的唯一值是null,那么可能会有人认为拥有记录没有实际意义,因为如果没有该记录,左连接可能会产生相同的结果


话虽如此,如果需要的话,我认为最好在父表上使用一个触发器将所有记录添加到子表中,而不是将它们链接到多个触发器中。这样,逻辑将包含在一个位置。

不了解您的结构这些表中的信息与正确回答相关,我只能猜测触发器可能不是您想要的。如果表中的其他字段超出了表1中的范围,并且没有默认值,那么如何在触发器中获取这些其他字段的值?就我个人而言,我会使用一个存储过程来插入表1,并从插入中获取id值,然后使用所需的附加信息插入到其他表中,并将其全部放在事务中,这样,如果一个插入失败,所有的数据都会回滚

谢谢你的回答,是的,分割是由于数量。当我最初尝试phpmyadmin只输出第一个表的触发器成功时,我成功地使单个触发器工作。谢谢你的时间。这是一个用户数据库,所以我有地址,公司信息等单独的表。。。因此,信息不同,但通过主键/外键设置链接。原因是,当用户注册并将它们添加到数据库中时,我只需要请求一点点信息来实际注册,但我仍然要求它们作为默认值出现在其他表中。因此,这种设置。如果有一个更好的设置为这种事情,虽然我很感谢任何意见,我可以得到。