我正在运行Postgres 8.4.13,并试图向现有表添加约束.根据the docs,这应该是可能的:

alter table indexed_friends add constraint no_duplicate_user_friends unique (user, friend);

然而,当我运行这个程序时,我得到了以下错误:

ERROR:  syntax error at or near "user"

我很困惑,因为我几乎完全遵循文档中列出的一个独特的约束示例.我可以提供表模式,但由于它抱怨语法错误,我不确定这是否必要.

推荐答案

啊...单词user是Postgres中的保留词.

用引号括起来:

alter table indexed_friends add constraint no_duplicate_user_friends unique ("user", friend);

工作.

Postgresql相关问答推荐

计算两个子查询之间的差异

Postgres:这是对OVERLAPS谓词的等效重写吗?

返回行值和行计数的总和

至少 pgRouting 的某些部分可以与并行查询并行运行吗?

如何使用 Grafana 测量 PostgreSQL 中的复制

ST_Intersects 太慢

PostgreSql maintenance_work_mem 在索引创建期间增加

在 SQL 上返回负值

GORM 不会创建 many2many 关联

什么是 postgres 超级用户

Docker - Postgres 和 pgAdmin 4:Connection refused

没有查询要创建的in ... error

Rails 4 迁移: has_and_belongs_to_many table name

在不存在的行上有select for update块

使用 current_setting() 判断值

如何在数据库表中查找重复条目?

如何增加 max_locks_per_transaction

根据 Helm 图表设置值

每个数据库提供程序类型允许的最大参数数是多少?

如何在 redshift 中对字段进行 GROUP BY 和 CONCATENATE