public interface InsertOnDuplicateStep<R extends Record> extends InsertReturningStep<R>
Insert's DSL API.
Example:
DSLContext create = DSL.using(configuration);
create.insertInto(table, field1, field2)
.values(value1, value2)
.values(value3, value4)
.onDuplicateKeyUpdate()
.set(field1, value1)
.set(field2, value2)
.execute();
| Modifier and Type | Method and Description |
|---|---|
InsertOnConflictDoUpdateStep<R> |
onConflict(java.util.Collection<? extends Field<?>> keys)
Add an
ON CONFLICT clause to this insert query. |
InsertOnConflictDoUpdateStep<R> |
onConflict(Field<?>... keys)
Add an
ON CONFLICT clause to this insert query. |
InsertReturningStep<R> |
onConflictDoNothing()
Add an
ON CONFLICT DO NOTHING clause to this insert query. |
InsertReturningStep<R> |
onDuplicateKeyIgnore()
Add an
ON DUPLICATE KEY IGNORE clause to this insert query. |
InsertOnDuplicateSetStep<R> |
onDuplicateKeyUpdate()
Add an
ON DUPLICATE KEY UPDATE clause to this insert query. |
returning, returning, returningbind, bind, cancel, close, execute, executeAsync, executeAsync, getBindValues, getParam, getParams, getSQL, getSQL, getSQL, isExecutable, keepStatement, queryTimeoutattach, configuration, detach@Support(value=POSTGRES_9_5) InsertOnConflictDoUpdateStep<R> onConflict(Field<?>... keys)
ON CONFLICT clause to this insert query.@Support(value=POSTGRES_9_5) InsertOnConflictDoUpdateStep<R> onConflict(java.util.Collection<? extends Field<?>> keys)
ON CONFLICT clause to this insert query.@Support(value=POSTGRES_9_5) InsertReturningStep<R> onConflictDoNothing()
ON CONFLICT DO NOTHING clause to this insert query.@Support(value={CUBRID,DB2,H2,HSQLDB,INFORMIX,MARIADB,MYSQL,ORACLE,POSTGRES_9_5,SQLSERVER,SYBASE}) InsertOnDuplicateSetStep<R> onDuplicateKeyUpdate()
ON DUPLICATE KEY UPDATE clause to this insert query.
This will try to INSERT a record. If there is a primary key
or unique key in this INSERT statement's affected table that
matches the value being inserted, then the UPDATE clause is
executed instead.
MySQL and CUBRID natively implements this type of clause. jOOQ can
emulate this clause using a MERGE statement on some other
databases. The conditions for a RDBMS to emulate this clause are:
INSERT statement's table is a
Table with a Table.getPrimaryKey()MERGE clause (see
DSLContext.mergeInto(Table)).H2 supports this clause in MySQL mode.
@Support InsertReturningStep<R> onDuplicateKeyIgnore()
ON DUPLICATE KEY IGNORE clause to this insert query.
This will try to INSERT a record. If there is a primary key
or unique key in this INSERT statement's affected table that
matches the value being inserted, then the INSERT statement
is ignored.
This clause is not actually supported in this form by any database, but can be emulated as such:
| Dialect | Emulation |
|---|---|
SQLDialect.MYSQL and SQLDialect.MARIADB |
|
SQLDialect.POSTGRES_9_5 |
|
SQLDialect.CUBRID |
|
SQLDialect.DB2SQLDialect.HSQLDBSQLDialect.ORACLESQLDialect.SQLSERVERSQLDialect.SYBASE |
|
| All the others | |
Copyright © 2018. All Rights Reserved.