要使用SQL命令行创建包含主键和名称的表,请执行以下操作
CREATE TABLE "people"(
"id" integer primary key,
"name" varchar(255)
);
这会创建一个表格,我不得不担心正确的设置 每条记录的主键。
CREATE TABLE "people2"(
"id" integer generated by default as identity,
"name" varchar(255)
);
表people2现在照顾我的主键。它很好地自动生成。
要将人员更改为自动填充主键,我可以执行以下操作:
ALTER TABLE "people"
ALTER COLUMN "id" integer IDENTITY
GUI现在变得有点儿麻烦(它只在重新打开表后显示正确的主键)。如果我创建一个像people2这样的表,我会将列id作为主键。
有没有更好的方法在create语句中一起使用主键和自动增量?默认情况下生成的约束作为标识首先会产生误导。
答案 0 :(得分:0)
子句generated by default as identity
(如果支持,则generated always as identity
)是定义标识列的SQL标准方法。
请注意,在表格" people2"中,您没有主键。您只将其指定为标识列,但您没有将其设为主键。您需要明确指定。