嗨,我在Java DB的NetBeans的初学者,违反外键
我有两个表,即交易和检查表中的事务表 我有一个名为[TRANSID]列,[PayToOrder],[BANKCODE] ,[Checknumber]。 in checks table我有名为[checknumber],[dateissued],[amount],[transID]的列。 我使用表单作为条目。
这里是我用来在数据库中插入数据的代码块。
private void btnAddRecordActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String trID = txtTransID.getText();
int ID = Integer.parseInt(trID);
String pto = txtPtO.getText();
String bc = txtBankCode.getText();
String cn = txtCheckNum.getText();
int chNum = Integer.parseInt(cn);
String amount = txtAmount.getText();
int amnt = Integer.parseInt(amount);
String dates = (String) txtDate.getValue();
try{
stmt1 = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
stmt2 = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
String sql1 = "Select * From transactions";
String sql2 = "Select * From checks";
rs1 = stmt1.executeQuery(sql1);
rs2 = stmt2.executeQuery(sql2);
rs1.moveToInsertRow();
rs2.moveToInsertRow();
rs1.updateInt("transID", ID);
rs1.updateString("PAYTOORDER", pto);
rs1.updateString("BANKCODE", bc);
rs1.updateInt("checknumber", chNum);
rs2.updateInt("checknumber", chNum);
rs2.updateInt("AMOUNT", amnt);
rs2.updateString("DATEISSUED", dates);
rs2.updateInt("transID", ID);
rs1.insertRow();
rs2.insertRow();
stmt1.close();
stmt2.close();
rs1.close();
rs2.close();
JOptionPane.showMessageDialog(this, "Successfully Recorded!");
}
catch(SQLException err){
JOptionPane.showMessageDialog(this, err.getMessage());
}
}
我一直得到一个错误:
“插入表‘交易’导致违反外键约束‘CHECKNUMBER’关键(输入的数据)的
请,如果任何人都可以。见识一下这部分
感谢
隆美尔安藤
主键TRANSACTIONS表中的[TRANSID]外键是[CHECKNUMBER]。 [Checknumber]是CHECKS表中的主键,外键是[TRANSID]。 –