是否可以一次性添加具有唯一约束的列?

问题描述 投票:0回答:1

我想将email列添加到具有UNIQUE约束的现有表中。是否可以使用一条语句来执行此操作?

当我尝试:

ALTER TABLE "Corporates"
ADD COLUMN "email" varchar(100) NOT NULL
CONSTRAINT "Corporates_email_key" UNIQUE ("email")

查询失败,并显示以下错误:

ERROR:  syntax error at or near "("
LINE 3:     CONSTRAINT "Corporates_email_key" UNIQUE ("email")
                                                     ^
SQL state: 42601
Character: 120

OTOH,我可以分别运行以下两个语句:

ALTER TABLE "Corporates"
ADD COLUMN "email" varchar(100) NOT NULL

然后:

ALTER TABLE "Corporates"
ADD CONSTRAINT "Corporates_email_key" UNIQUE ("email")

并且有效。

postgresql ddl postgresql-11
1个回答
0
投票

您需要第二个ADD选项:

ALTER TABLE corporates
  ADD COLUMN email varchar(100) NOT NULL,
  ADD CONSTRAINT corporates_email_key UNIQUE (email);
© www.soinside.com 2019 - 2024. All rights reserved.