我有下表:
CREATE TABLE "MIGRATION"."VERSION"
(
ID BIGINT PRIMARY KEY NOT NULL GENERATED BY DEFAULT AS IDENTITY,
VERSION_DATE timestamp DEFAULT CURRENT TIMESTAMP NOT NULL
)
我想在该表中插入一个“新行”,但由于所有内容都是自动生成的,我该怎么办呢?
INSERT INTO "MIGRATION"."VERSION" VALUES();
无效。必须这样做,不能改变。
答案 0 :(得分:6)
SQL标准和大多数数据库支持DEFAULT VALUES
子句:
INSERT INTO "MIGRATION"."VERSION" DEFAULT VALUES;
支持此功能
如果不支持上述内容,您仍可以将此语句编写为变通方法。事实上,第一个由SQL标准指定为等同于第二个:
INSERT INTO "MIGRATION"."VERSION" (ID, VERSION_DATE) VALUES (DEFAULT, DEFAULT);
这将适用于:
有关详情,请参阅此博客文章:
http://blog.jooq.org/2014/01/08/lesser-known-sql-features-default-values/
答案 1 :(得分:0)