【发布时间】:2014-05-02 11:34:02
【问题描述】:
我发现我的 PK 导致的错误没有值,因此我在 FK 上的插入失败。
如表A的uId是表B的uId(FK)的PK,所以如果我想在表B的uId中插入1,那么表A的uId必须为1。
但是那是 2 次查询执行吗?应该怎么写?我第二次尝试了 2 sql 执行 - 插入 FK 的地方失败了。
【问题讨论】:
-
你能说得更具体点吗?通常,如果您不知道外键 ID(例如,如果 FK 是代理键),您将能够基于另一个(例如自然)键来查找它。另外,请记住 FK 可以为 NULLABLE,即如果 A 和 B 之间的关系是可选的。
-
@StuartLC 这种关系是存在的,我不明白你为什么说 A 和 B 是可选的。我的问题是我无法插入 FK。我将 2 个查询放在一个文件中。第二个失败,因为它似乎无法识别第一个,我在表 A 的 PK 中插入了一个值。
-
表 A 的 PK 是否有可能是
IDENTITY,即您是否需要找到最近插入的 A ID 的 ID,以便可以将其用于插入 B?如果没有,您必须在插入 A 时提供 A 的 PK,因此您应该知道 A ID。 -
oic。所以我不应该使用相同的变量插入?相反,我应该选择插入的 PK。例如像这样“插入 tableA(
uId) values("select uId from tableA")??
标签: php mysql sql sql-server database