我正在开发一个包含8列表的GUI,(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)
...
通过使用上述查询,我无法插入到数据库以及GUI表中。请让我知道正确的查询。
答案 0 :(得分:0)
你的问题很混乱:
我正在开发一个包含8列表的GUI,(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个insert语句:一个插入table1,另一个插入table2。如果FK在table2中,那么第一个插入必须是table1中的插入,因为table2中的FK必须引用table1中存在的行。