Можно ли добавить столбец с уникальным ограничением в один go? - PullRequest
0 голосов
/ 03 марта 2020

Я хочу добавить столбец 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")

и все заработало.

1 Ответ

1 голос
/ 03 марта 2020

Вам нужен второй ADD параметр:

ALTER TABLE corporates
  ADD COLUMN email varchar(100) NOT NULL,
  ADD CONSTRAINT corporates_email_key UNIQUE (email);
...