Postgresql 将表列类型更改为唯一非空

Pra*_*wal 2 postgresql

ALTER TABLE users ALTER COLUMN email VARCHAR(50) UNIQUE NOT NULL;
ERROR:  syntax error at or near "VARCHAR"
LINE 1: ALTER TABLE users ALTER COLUMN email VARCHAR(50) UNIQUE NOT ...
Run Code Online (Sandbox Code Playgroud)

我想更改列 email 以将其类型添加为 Postgresql 中的 UNIQUE NOT NULL 并收到此错误。你能向我解释一下出了什么问题吗?

pif*_*for 7

您不能使用一条语句创建 2 个约束。而且你必须使用 PostgreSQL 语法。

alter table users alter column email set not null;
alter table users add constraint email_unique unique (email);
Run Code Online (Sandbox Code Playgroud)