在具有主键和外键的两个表中插入数据

时间:2018-11-07 20:00:19

标签: sql sql-server-2014

我有两个表:

表1

  • 第1列:主键(在表2中用作外键)
  • 第2列:外键(表2中的主键)

表2

  • Col 1:主键(在表1中用作外键)
  • Col 2:外键(表1中的主键)

如何将数据插入这些表?

1 个答案:

答案 0 :(得分:2)

这种设计将不起作用:两个表中的插入指令将相互锁定,即使您按照一个注释中的建议使两个表中的外键都为空(在过程中失去参照完整性) ,则插入操作不会是原子操作,从而可能会导致很多问题。

在我看来,您正在尝试在两个表之间实现多对多关系,如果是这种情况,则应以这种方式设计一个3表关系:

TableA

  • PK_A
  • Field1_A
  • Field2_A
  • 等...

TableB

  • PK_B
  • Field1_B
  • Field2_B
  • 等...

ConnectingTable

  • PK_CT
  • PK_A(作为外键)
  • PK_B(作为外键)
  • FieldX
  • 等...

通过这种方式,您可以在一个ManyToMany关系中连接两个表而无需交叉引用它们