2013-06-24 17 views
12

Używam programu Postgres 8.4.13 i próbuję dodać ograniczenie do istniejącej tabeli. Według the docs, powinno to być możliwe:Błąd składniowy przy lub w pobliżu "użytkownika" podczas dodawania ograniczenia Postgres

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

Jednak gdy uruchomię to pojawia się następujący błąd:

ERROR: syntax error at or near "user" 

jestem zdezorientowany bo mam następujący unikalny przykład więzów wymienionych w dokumentacja prawie dokładnie. Mogę podać schemat tabeli, ale ponieważ narzeka na błąd składni, nie jestem pewien, czy jest to konieczne.

Odpowiedz

21

Ahhh ... Słowo user jest zastrzeżonym słowem w Postgres.

otaczających go w cudzysłowie:

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

pracował.

+1

Lepiej nie używać słów zarezerwowanych jako nazw kolumn. To ciągły ciąg smutku i takich problemów. –

+0

Tak ... Niestety, zrobiłem początkowy schemat w SqlAlchemy, więc nawet nie zdawałem sobie sprawy z tego problemu. –

0

To jest fajne, user jest słowem kluczowym w Postgresql. Stworzę tabelę o nazwie xx_user. xx to inicjały

Powiązane problemy