2013-06-24 10 views
12

Sto eseguendo Postgres 8.4.13 e sto provando ad aggiungere un vincolo a una tabella esistente. Secondo the docs, questo dovrebbe essere possibile:Errore di sintassi in corrispondenza o vicino a "utente" quando si aggiunge il vincolo Postgres

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

Eppure, quando ho eseguito questo io ottenere il seguente errore:

ERROR: syntax error at or near "user" 

Sono confuso perché sto seguendo un esempio unico vincolo elencati nel documentazione quasi esattamente. Posso fornire lo schema della tabella, ma poiché si lamenta di un errore di sintassi, non sono sicuro che sia necessario.

risposta

21

Ahhh ... La parola user è una parola riservata in Postgres.

dintorni tra virgolette:

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

lavorato.

+1

Meglio ancora, non usare parole riservate come nomi di colonne. È solo una serie continua di dolore e problemi come questo. –

+0

Sì ... purtroppo ho fatto lo schema iniziale in SqlAlchemy, quindi non ho nemmeno realizzato il problema. –

0

È così bello, user è una parola chiave in Postgresql. Creerò il tavolo chiamato xx_user. xx sono le iniziali

Problemi correlati