2012-04-20 21 views
2

私は現在Jooqをプロジェクトに使用していますが、挿入時に重複するキーを無視する方法が必要です。Jooq - 重複を無視

私はテーブルに書きたいオブジェクトの配列を持っていますが、すでに存在する場合は、START_TSとEVENT_TYPEの複合一意インデックスによって決定されますが、挿入が黙って失敗するようにします。

.onDuplicateKeyUpdate().set(MY_REC.EVENT_TYPE,MY_REC.EVENT_TYPE); 

でも何でもI:私はのようなものを追加する必要が把握https://stackoverflow.com/a/4920619/416338

:このようなソリューションが理想的である

​​

マイコードは次のようになりますそれはまだ重複でエラーをスローするようだが追加します。

+2

に1つのレコードを挿入しようとすることができ(COL1を選択、col2 FROM(VALUES(val1、val2))をtemp(col1、col2)として使用することはできません。変化)。 –

+0

@LukasEder 'INSERT INTO t(column1、... columnN)SELECT ...他のテーブルから...'はほとんどすべてのDBMSでサポートされています。 –

+0

@ypercube:私は 'SELECT'を逃したに違いない...私の悪い –

答えて

2

MySQLのINSERT IGNORE INTOの構文のサポートはjOOQ 2.3.0のロードマップにあります。これは最近jOOQ user groupで議論されていました。この構文は、SQL MERGEステートメントをサポートする他のすべてのSQLダイアレクトでシミュレートされます。

平均時間では、回避策として、私はこのツールを知らないが、プレーンなSQLにあなたがテーブルに挿入 `のような何かを行うことができ、時間

関連する問題