0

我正在开发一个 GUI,其中包含一个包含 8 列的表(A、B、C、D、E、F、G)

在数据库中,我有两个表。表 1 包含 (A,B,C,D,E+),表 2 包含 (E,F,G)。这里 E+ 是表 1 的 FK。

现在我想使用准备好的语句插入,然后填充 GUI 表。我正在编写插入查询,如下所示。表 1 中的 E+ FK 用于填充表 2 的值。

insert into table1 (a,b,c,d,e,f,g) values (?,?,?,?,(select t2.E from t2 where t2.E=2)

ps.setString(1,a)
ps.setString(2,b)
ps.setString(3,b)
...

通过使用上述查询,我​​无法插入 DB 以及 GUI 表。请让我知道正确的查询。

4

1 回答 1

0

你的问题很混乱:

我正在开发一个 GUI,其中包含一个包含 8 列的表(A、B、C、D、E、F、G)

那是 7 列,而不是 8 列。

在数据库中,我有两个表。表 1 包含 (A,B,C,D,E+),表 2 包含 (E,F,G)。这里 E+ 是表 1 的 FK。

为什么 Table1 会包含自身的外键?

插入 table1 (a,b,c,d,e,f,g)

你怎么能想象这会起作用,因为表 1 没有任何名为 e、f 和 g 的列?


首先,将数据库内容与 GUI 内容分离为不同的类。这两个方面不应混为一谈。

然后学习SQL。如果要插入 2 个表,则需要 2 个插入语句:一个插入 table1,另一个插入 table2。如果 FK 在 table2 中,那么第一个插入必须是 table1 中的插入,因为 table2 中的 FK 必须引用 table1 中存在的行。

于 2012-10-28T07:43:43.723 回答