Am trying to get some order information from XML file and trying to store it in database(MySQL) table. I can retrieve the order information from XML file but when am trying to insert into the table it shows error as MySQLIntegrityConstraintException.
My program contains as below,
def Order = new XmlParser().parse("MyXml.xml")
def set1 = sql.dataSet("order_item")
def set2 = sql.dataSet("order_header")
Order.order_item.each {
// retrieving order information and storing
}
set1.add(Column_Name1:order_id,Column_Name2:field2,Column_Name3:field3)
set2.add(Column_Name1:order_id)
I listed the error in detail below
WARNING: Failed to execute: insert into order_item (order_id, order_item_seq_id,
order_item_type_id, product_id, prod_catalog_id, quantity, unit_price, unit_lis
t_price, item_description, status_id) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?) beca
use: Cannot add or update a child row: a foreign key constraint fails (ecommerc, CONSTRAINT
e/order_itemORDER_ITEM_HDRFOREIGN KEY (ORDER_ID) REFERENCES(
order_headerORDER_ID))
Caught: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationExcepti
on: Cannot add or update a child row: a foreign key constraint fails (ecommerce, CONSTRAINT
/order_itemORDER_ITEM_HDRFOREIGN KEY (ORDER_ID) REFERENCESo(
rder_headerORDER_ID))
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Cann
ot add or update a child row: a foreign key constraint fails (ecommerce/order_i, CONSTRAINT
temORDER_ITEM_HDRFOREIGN KEY (ORDER_ID) REFERENCESorder_hea(
derORDER_ID))
at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
at com.mysql.jdbc.Util.getInstance(Util.java:384)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1041)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3562)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3494)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1960)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2114)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2696)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.ja
va:2105)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java
:2398)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java
:2316)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java
:2301)
at db2xml.XMLToDatabase$_main_closure2.doCall(XMLToDatabase.groovy:52)
at db2xml.XMLToDatabase.main(XMLToDatabase.groovy:38)
Can anyone help me to come out from this problem. Thanks in advance
At first the foreign key constraint table to be updated initially then the specific table to should me updated. A small change in the above code is
set2.add(Column_Name1:order_id)set1.add(Column_Name1:order_id,Column_Name2:field2,Column_Name3:field3)The set 2 should updated first and then the set 1.
Now it got worked for me. Thanks for all.