0

要使用 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 现在照顾我的主键。它可以很好地自动生成。

要更改表 people 以自动填充主键,我可以执行以下操作:

ALTER TABLE "people"
ALTER COLUMN "id" integer IDENTITY

GUI 现在变得有点错误(它仅在重新打开表后才显示正确的主键)。如果我创建一个像 people2 这样的表,我将列 id 作为主键。

有没有更好的方法在创建语句中同时使用主键和自动增量?默认情况下作为身份生成的约束起初非常具有误导性。

4

1 回答 1

0

该子句generated by default as identitygenerated always as identity如果支持)是定义标识列的 SQL 标准方式。

请注意,在“people2”表中,您没有主键。您仅将其指定为标识列,没有将其设为主键。您需要明确指定这一点。

于 2018-03-06T12:27:53.820 回答