INSERT .. DEFAULT VALUES
适用于 ✅ 开源版 ✅ 专业版 ✅ 企业版
SQL 中一个不太为人所知的语法特性是 INSERT .. DEFAULT VALUES 语句,它会插入一条记录,其中包含每行的 DEFAULT 值。 它的写法如下
INSERT INTO AUTHOR DEFAULT VALUES;
create.insertInto(AUTHOR)
.defaultValues()
.execute();
在您想要在同一事务中“保留”数据库中的一行以供后续UPDATE 语句使用的情况下,这可能很有意义。 或者,如果您只是想发送一个包含触发器生成的默认值(例如 ID 或时间戳)的事件。
并非所有数据库都支持 DEFAULT VALUES 子句,但 jOOQ 可以使用等效语句来模拟它
INSERT INTO AUTHOR
(ID, FIRST_NAME, LAST_NAME, ...)
VALUES (
DEFAULT,
DEFAULT,
DEFAULT, ...);
create.insertInto(
AUTHOR, AUTHOR.ID, AUTHOR.FIRST_NAME, AUTHOR.LAST_NAME, ...)
.values(
defaultValue(AUTHOR.ID),
defaultValue(AUTHOR.FIRST_NAME),
defaultValue(AUTHOR.LAST_NAME), ...)
.execute();
insertInto(AUTHOR).defaultValues()
翻译成以下特定方言的表达式
ASE, Access, Aurora MySQL, BigQuery, DB2, Databricks, Derby, MariaDB, MemSQL, MySQL, Oracle, Snowflake
INSERT INTO AUTHOR VALUES ( DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT )
Aurora Postgres, ClickHouse, CockroachDB, DuckDB, Exasol, Firebird, H2, HSQLDB, Postgres, SQLDataWarehouse, SQLServer, Teradata, YugabyteDB
INSERT INTO AUTHOR DEFAULT VALUES
Hana, Informix, Redshift, SQLite, Sybase, Vertica
INSERT INTO AUTHOR (FIRST_NAME, DATE_OF_BIRTH, YEAR_OF_BIRTH, DISTINGUISHED) VALUES ( NULL, NULL, NULL, NULL )
Trino
/* UNSUPPORTED */
使用 jOOQ 3.21 生成。早期 jOOQ 版本的支持可能有所不同。 在我们的网站上翻译您自己的 SQL
反馈
您对此页面有任何反馈吗? 我们很乐意听到您的反馈!