可用版本:Dev (3.21) | 最新 (3.20) | 3.19 | 3.18 | 3.17 | 3.16 | 3.15 | 3.14 | 3.13 | 3.12 | 3.11

INSERT .. SET

适用于 ✅ 开源版   ✅ 专业版   ✅ 企业版

MySQL (以及其他一些 RDBMS) 允许对 INSERT 语句使用非 SQL 标准的、类似 UPDATE 的语法。jOOQ 也支持此语法(并为所有数据库模拟此语法),如果您喜欢这种语法。上面的 INSERT 语句也可以表达如下

create.insertInto(AUTHOR)
      .set(AUTHOR.ID, 100)
      .set(AUTHOR.FIRST_NAME, "Hermann")
      .set(AUTHOR.LAST_NAME, "Hesse")
      .execute();

多行变体

create.insertInto(AUTHOR)
      .set(AUTHOR.ID, 100)
      .set(AUTHOR.FIRST_NAME, "Hermann")
      .set(AUTHOR.LAST_NAME, "Hesse")
      .newRecord()
      .set(AUTHOR.ID, 101)
      .set(AUTHOR.FIRST_NAME, "Alfred")
      .set(AUTHOR.LAST_NAME, "Döblin")
      .execute();

正如您所见,这种语法有点冗长,但可读性也更高,因为每个字段都可以与其值匹配。在内部,这两种语法是严格等效的。

方言支持

此示例使用 jOOQ

insertInto(AUTHOR).set(AUTHOR.ID, 100).set(AUTHOR.LAST_NAME, "Hesse")

翻译成以下特定方言的表达式

所有方言

INSERT INTO AUTHOR (ID, LAST_NAME)
VALUES (
  100, 
  'Hesse'
)
使用 jOOQ 3.21 生成。早期 jOOQ 版本的支持可能有所不同。 在我们的网站上翻译您自己的 SQL

反馈

您对此页面有任何反馈吗? 我们很乐意听到!

The jOOQ Logo