【发布时间】:2018-05-09 20:50:33
【问题描述】:
我试图通过http://localhost/phpmyadmin 从表中删除条目。 它返回以下错误:
“无法删除或更新父行:外键约束失败 (press.prodstock, CONSTRAINT fk_prodstock_prodlist1 FOREIGN KEY (item_code) REFERENCES prodlist (id) ON DELETE NO ACTION ON UPDATE NO ACTION) "
我写了一个 JAVA 代码从 NetBeans 中删除它:
private void loginBut46ActionPerformed(java.awt.event.ActionEvent evt) {
if (prodlist.getSelectedRowCount() == 0) {
JOptionPane.showMessageDialog(rootPane, "Select Raw to View!");
} else {
int r = prodlist.getSelectedRow();
String id = prodlist.getValueAt(r,0).toString();
String item_code = prodlist.getValueAt(r,1).toString();
try {
DB.DB.statement("delete from prodlist where id = '"+id+"' ");
DB.DB.statement("delete from prodstock where item_code='"+item_code+"'");
} catch (Exception ex) {
Logger.getLogger(Stock.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
【问题讨论】:
-
您必须在引用数据之前删除引用数据。
-
DB.DB.statement("从 prodstock 中删除 item_code='"+item_code+"'"); DB.DB.statement("从产品列表中删除 id = '"+id+"' ");这是正确的顺序@Uueerdo 吗?
-
您不能删除父级,因为它在其他表中仍有一些引用数据。您必须先删除引用的数据,然后再删除父数据。您还可以在引用的表上设置
ON DELETE CASCADE,这将在删除父数据时删除引用的数据。更多可以在这个链接上找到。 mysqltutorial.org/mysql-on-delete-cascade -
@DilankaDias 是的,只需将它们从问题中的情况交换过来就足够了。
标签: java mysql netbeans foreign-keys wampserver