将数据插入mysql数据库中的两个(或更多)表的顺序

时间:2015-04-11 17:48:56

标签: php mysql sql insert

我想将数据插入到我的数据库中,但是有些表彼此依赖,例如:

表1:

table1_id (PK, unique)  |  some_text  |  table2_id (FK, unique in table2)

表2:

table2_id (PK, unique)  |  table1_id (FK, unique in table2)  |  table3_id (FK, unique in table3)

表3:

table3_id (PK, unique)  |  table1_id (FK, unique in table1)  | some_other_data

让我们说这些表与例如因此,在表1中,我们存储关于商业的信息,在表2中存储关于客户的信息,在表3中存储关于每个商业广告的计划广告的信息。因此,当我想创建一个新商业广告时 - 我需要一次填写所有3个表格。但问题是,例如 - 在创建table1时我需要知道table2_id(我此时尚未创建),等等。我该如何修复它?

2 个答案:

答案 0 :(得分:2)

如果DB设计略有改变会更好,所有表格中的FK相互之间的插入数据会很困难或很复杂。

因此,以下架构可以帮助您!

表1 table1_id(PK)| some_other_columns

表2 table2_id(PK)| table1_id(FK,表2中唯一)

表3 table3_id(PK)| table1_id(FK参见表1)| table2_id(FK参考表2)

开始按顺序从table1插入table3

答案 1 :(得分:2)

只需插入table1数据,让table2_id(FK)为空或0。

然后插入table3数据,现在你有tabl1_id& table3_id,所以你可以插入table2的数据。

最后,当行已成功添加到table2时,您可以更新table1以将table2_id从(null或0)更改为real table2_id。