2013-06-24 41 views
12

我正在运行Postgres 8.4.13,并尝试向现有表添加约束。根据the docs,这应该是可能的:当添加Postgres约束时,在“用户”处或附近的语法错误

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

然而,当我运行此我得到以下错误:

ERROR: syntax error at or near "user" 

我很困惑,因为我在下面所列出的唯一约束例子文档几乎完全一致我可以提供表格模式,但由于它抱怨语法错误,我不确定这是否必要。

回答

21

啊......这个词user是Postgres中的保留字。

周围引号:

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

工作。

+1

更好的是,不要使用保留字作为列名。这只是一连串的悲哀和问题。 –

+0

是的......可悲的是我在SqlAlchemy中完成了初始模式,所以我甚至没有意识到这个问题。 –

0

这很酷,user是Postgresql中的关键字。我将创建名为xx_user的表格。 xx是首字母缩写

相关问题