batchUpdate()
テーブルに複数のレコードを挿入するために使用しています。要件に従って、挿入中に主キーに重複する値がある場合、最新の受信データで更新する必要があるためON DUPLICATE KEY UPDATE
、INSERT
ステートメントで使用しようとしていました。単一のON DUPLICATE KEY UPDATE
挿入を使用するとうまく機能しますがbatchupdate()
、同じクエリを使用するとエラーが発生します。エラーは次のとおりです。
テストケース: testVehicleTracking(com.em.ert.test.TrackingServiceTest): PreparedStatementCallback のエラーが発生しました。悪い SQL 文法 [INSERT INTO test_tracking (sino, material_id, material_type, vehicle_position, rundown_num, msg_type, msg_status, msg_timestamp) VALUES(?, ?, ?, ?, ?, ?, ?, ?) ON DUPLICATE KEY UPDATE]; ネストされた例外は java.sql.BatchUpdateException です: SQL 構文にエラーがあります。1 行目の near '' を使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。
ON DUPLICATE KEY UPDATE
batchupdate() で動作しない理由がわかりません。私が見る限り、作業に違いは何もないので、理想的にはそうあるべきです。
これを達成するために私は何をすべきですか?