使用Java查询从数据库中选择值,并将其用作变量,然后将其插入另一个表中
所以我从一个数据库表中选择了一些值,将它们分成几个小组,然后将它们插入到数据库中的另一个表中,方法是将所选的值放入ArrayList中,并计算该ArrayList的大小 但在我计算完之后,我只剩下包含我需要的信息的变量了。但是,我不能把它们放在另一张表中,因为它们与我一开始选择的东西不一样。它们现在只是数字。我真的需要将这些变量插入到另一个表中,但当我这样做时,我得到外键约束失败错误,我认为这是因为变量不再是外键,而只是一个数字。我不知道是否有解决办法,但它会帮助我分配。这是我的密码:使用Java查询从数据库中选择值,并将其用作变量,然后将其插入另一个表中,java,mysql,sql,netbeans,jdbc,Java,Mysql,Sql,Netbeans,Jdbc,所以我从一个数据库表中选择了一些值,将它们分成几个小组,然后将它们插入到数据库中的另一个表中,方法是将所选的值放入ArrayList中,并计算该ArrayList的大小 但在我计算完之后,我只剩下包含我需要的信息的变量了。但是,我不能把它们放在另一张表中,因为它们与我一开始选择的东西不一样。它们现在只是数字。我真的需要将这些变量插入到另一个表中,但当我这样做时,我得到外键约束失败错误,我认为这是因为变量不再是外键,而只是一个数字。我不知道是否有解决办法,但它会帮助我分配。这是我的密码: priv
private void spelersVerdelenMouseClicked(java.awt.event.MouseEvent evt) {
String comboBoxValue = jComboBoxDeelnemer.getSelectedItem().toString();
String spelerRonde1 = "SELECT lid, toernooi FROM deelnemer where toernooi LIKE " + comboBoxValue ;
ArrayList<String> dlnmrs = new ArrayList<>();
try {
PreparedStatement pstat = con.prepareStatement(spelerRonde1);
ResultSet rs = pstat.executeQuery();
while (rs.next()) {
dlnmrs.add(rs.getString("lid"));
for (int i = 0; i < dlnmrs.size(); i++) {
}
}
} catch (Exception e) {
JOptionPane.showMessageDialog(rootPane,e);
}
verdeelTafels(1, dlnmrs.size());
private void verdeelTafels(int ronde, int aantalDeelnemers) {
System.out.println(aantalDeelnemers);
int aantalTafels = (int) aantalDeelnemers / AANTAL_SPELERS_PER_TAFEL;
int restSpelerPerRonde = aantalDeelnemers % AANTAL_SPELERS_PER_TAFEL;
if (aantalDeelnemers == (AANTAL_SPELERS_PER_TAFEL * 2)) {
aantalTafels = 1;
restSpelerPerRonde = 0;
}
for (int i = 0; i < aantalTafels; i++) {
int maxSpelersPerTafel = AANTAL_SPELERS_PER_TAFEL;
if (i == aantalTafels - 1) {
maxSpelersPerTafel += restSpelerPerRonde;
}
System.out.println("Tafel " + (i + 1) + " heeft " + maxSpelersPerTafel + " deelnemers.");
//spelersDoorlopen
for (int j = 0; j < maxSpelersPerTafel; j++) {
String query = "insert into spelerPerTafel (lid,tafel,ronde) select lcode,tfcode,rcode from lid,tafel,ronde ";
try{
PreparedStatement pstat = con.prepareStatement(query);
pstat.execute(query);
}
catch (Exception e) {
JOptionPane.showMessageDialog(rootPane,e);
System.out.println(e);
}
}
}
}
试一试
字符串查询=插入表格A,从表格B中选择*其中XXX
使用where条件可以实现表b的划分
您可以显示您的表定义吗?此sql语句插入到spelerPerTafel lid、tafel、ronde select lcode、tfcode、rcode from lid、tafel、ronde中的格式不正确。您是否从其他表中获取要插入的信息?在这种情况下,你需要命名它。否则您需要使用VALUESval,val,…表格lid有ALOT oft列:lcode是我们这里唯一需要的表格tafel有tfcode列,MAXAANTALSPELER列,MINANTALSPELER列。表格ronde有rcode列,AantalRonde列,tijdstip列,toernooi表格SPELERPTAFEL有lid列,tafel列,ronde外键lid引用lid外键的lcode tafel引用tafel外键的tfcode ronde引用Rondozan的rcode,好的,但您的问题与fk约束有关,因此,不知道表定义很难给出明确的答案。ow和添加如您所示的值会导致外键约束错误canot update child row等,因为变量不包含我需要的外键。它们只是数字