向 PostgreSQL 中的表添加默认约束

Ady*_*ynh 3 postgresql-9.6

我正在使用 PostgreSQL 数据库。我已经创建了所需的表。现在我必须根据约束更改表列。我必须将默认约束应用于默认值应为 1 的列之一。

这是我正在使用的查询,

ALTER TABLE Alerts ADD  CONSTRAINT DF_Alerts_bIsActive SET DEFAULT ((1)) FOR bIsActive;
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误,

ERROR:  syntax error at or near "SET"
LINE 30: ... TABLE Alerts ADD  CONSTRAINT DF_Alerts_bIsActive SET DEFAUL...
                                                              ^
SQL state: 42601
Character: 948
Run Code Online (Sandbox Code Playgroud)

请任何人都可以建议我实现这一目标的正确方法。

a_h*_*ame 7

没有“默认约束”这样的东西。您只需定义默认

alter table alerts alter column bisactive set default 1;
Run Code Online (Sandbox Code Playgroud)

无关,但是: bisactive听起来像是某种标志。您应该将其定义为适当的boolean列,而不是整数。

  • 事实上,有趣的是,在 MS SQL Server 中存在“默认约束”之类的东西,问题中的语法与之相关。MS 世界中的事情有时很奇怪。 (2认同)