我有下表:
CREATE TABLE "MIGRATION"."VERSION"
(
ID BIGINT PRIMARY KEY NOT NULL GENERATED BY DEFAULT AS IDENTITY,
VERSION_DATE timestamp DEFAULT CURRENT TIMESTAMP NOT NULL
)
Run Code Online (Sandbox Code Playgroud)
我想在该表中插入一个"新行"但由于所有内容都是自动生成的,我该怎么办呢?
INSERT INTO "MIGRATION"."VERSION" VALUES();
Run Code Online (Sandbox Code Playgroud)
不工作.必须这样做,不能改变.
SQL标准和大多数数据库支持以下DEFAULT VALUES子句:
INSERT INTO "MIGRATION"."VERSION" DEFAULT VALUES;
Run Code Online (Sandbox Code Playgroud)
这是支持的
如果不支持上述内容,您仍可以将此语句编写为变通方法.实际上,第一个由SQL标准指定为等同于第二个:
INSERT INTO "MIGRATION"."VERSION" (ID, VERSION_DATE) VALUES (DEFAULT, DEFAULT);
Run Code Online (Sandbox Code Playgroud)
这将适用于:
有关详细信息,请参阅此博客文章:
http://blog.jooq.org/2014/01/08/lesser-known-sql-features-default-values/
| 归档时间: |
|
| 查看次数: |
548 次 |
| 最近记录: |