2
현재 프로젝트에 Jooq를 사용하고 있지만 삽입시 중복 키를 무시할 방법이 필요합니다.Jooq - Duplicates 무시
테이블에 쓸 개체 배열이 있지만 이미 존재하는 경우 START_TS 및 EVENT_TYPE의 합성 고유 인덱스에 의해 결정됩니다. 삽입이 자동으로 실패하기를 원합니다.
.onDuplicateKeyUpdate().set(MY_REC.EVENT_TYPE,MY_REC.EVENT_TYPE);
그러나 어떤 I : 나는 같은 것을 추가 할 필요가 파악 https://stackoverflow.com/a/4920619/416338
이 같은 솔루션이 이상적 일 것이다
InsertValuesStep<MyRecord> query = fac.insertInto(MY_REC,
MY_REC.START_TS,
MY_REC.STOP_TS,
MY_REC.EVENT_DATA,
MY_REC.EVENT_TYPE,
MY_REC.PUBLISHED_TS,
MY_REC.MY_ID
);
for(int i=0;i<recs.length;i++)
{
MyClass evt = recs[i];
query.values(
new java.sql.Date(evt.startTS.getTime()),
(evt.stopTS == null) ? null : new java.sql.Date(evt.stopTS.getTime()),
evt.eventData,
evt.type.name(),
date,
id)
}
query.execute();
:
내 코드는 다음과 같이 보입니다 여전히 중복에 오류가 발생하는 것 같습니다.
나는이 도구를 모르는 시도 할 수 있지만, 일반 SQL에서 당신은 COL1을 선택합니다 (테이블에 삽입'과 같은 작업을 수행 할 수 있습니다 , col2 FROM (VALUES (val1, val2)) temp (col1, col2)로 존재하지 않는 곳 (거의 모든 RDBMS (또는 약간) 변화). –
@LukasEder'INSERT INTO t (column1, ... columnN) SELECT ... 다른 테이블에서 ... '는 거의 모든 DBMS에서 지원됩니다. –
@ypercube : 나는 '선택'을 놓쳤을 것임에 틀림 없다 ... 나의 나쁜 –