

embulkでs3のデータをrdsへETLしようとするとFOREIGN_KEY制約のエラーが発生します。  
具体的には以下のようなエラーです。

[code]

    java.lang.RuntimeException: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Cannot delete or update a parent row: a foreign key constraint fails 
    (`outputdb`.`TABLE_HISTORY`, CONSTRAINT `fk_TABLE_HISTORY_TABLE_HISTORY1` FOREIGN KEY (`PRIMARY_ID`, `SECOND_PRIMARY_ID`) REFERENCES `TABLE)
    
[/code]

上のようにPrimary keyが二つのカラムに設定してあります（複合主キー）。

## 試したこと

mysql側でset FOREIGN_KEY_CHECKS=0;を設定

embulk のoutに以下のように設定を記述。  
before_load: 'set FOREIGN_KEY_CHECKS=0;'


CC BY-SA 4.0
2021-11-30T00:22:16.487
83879
2021-11-30T02:19:20.000
36855
question
java mysql amazon-s3 embulk
embulkでs3のデータをrdsへETLしようとするとFOREIGN_KEY制約のエラーが発生する


これで解決：

フォーリンキーエラー参照し以下のコマンドでフォーリンキーを確認

[code]

    SHOW CREATE TABLE テーブル名;
    
[/code]

フォーリンキーを削除。

[code]

    ALTER TABLE テーブル名 DROP FOREIGN KEY 外部キー名;
    
[/code]


CC BY-SA 4.0
2021-11-30T02:19:20.000
83883
2021-11-30T02:19:20.000
36855
83879
answer