2013-06-24 43 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是首字母縮寫

相關問題