4

XMLファイルから注文情報を取得してデータベース(MySQL)テーブルに保存しようとしています。XMLファイルから注文情報を取得できますが、テーブルに挿入しようとすると、MySQLIntegrityConstraintExceptionとしてエラーが表示されます。

私のプログラムには以下が含まれています、

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)

エラーを以下に詳細にリストしました

警告:実行に失敗しました: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)の値(?、?、?、?、?、?、?、?、? 、?)beca use:子行を追加または更新できません:外部キー制約が失敗します(ecommerc e/order_item、CONSTRAINT ORDER_ITEM_HDRFOREIGN KEY(ORDER_ID)REFERENCES order_headerORDER_ID))キャッチ:com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationExcepti on:追加または更新できません子行:外部キー制約が失敗します(ecommerce /order_item、CONSTRAINT ORDER_ITEM_HDRFOREIGN KEY(ORDER_ID)REFERENCES o rder_headerORDER_ID))com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:子行を追加または更新できません:外部キー制約が失敗します(ecommerce/order_i tem、CONSTRAINT ORDER_ITEM_HDRFOREIGN KEY(ORDER_ID)REFERENCES order_hea derORDER_ID))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)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)atcom。mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2301)at db2xml.XMLToDatabase $ _main_closure2.doCall(XMLToDatabase.groovy:52)at db2xml.XMLToDatabase.main(XMLToDatabase.groovy:38)

誰かが私がこの問題から抜け出すのを手伝ってくれる?前もって感謝します

4

1 に答える 1

3

最初に外部キー制約テーブルを最初に更新し、次に特定のテーブルを更新する必要があります。上記のコードの小さな変更は

set2.add(Column_Name1:order_id) set1.add(Column_Name1:order_id,Column_Name2:field2,Column_Name3:field3)

セット2を最初に更新し、次にセット1を更新する必要があります。

今、それは私のために働いた。全てに感謝。

于 2012-09-05T05:19:17.047 に答える