Обсуждение: Problem with alter table (creating a foreing key post facto)
A curious problem with 7.3.1 : I wanted to add a foreing key constraint to
a table already created and populated. No way, according to Postgres :
Welcome to psql 7.3.1, the PostgreSQL interactive terminal.
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help on internal slash commands
\g or terminate with semicolon to execute query
\q to quit
essai=# \d tablea
Table "public.tablea"
Column | Type | Modifiers
--------+---------+----------------------------------------------------------
keya | integer | not null default nextval('public.tablea_keya_seq'::text)
vala | text |
Indexes: tablea_pkey primary key btree (keya)
essai=# \d tableb
Table "public.tableb"
Column | Type | Modifiers
--------+---------+----------------------------------------------------------
keyb | integer | not null default nextval('public.tableb_keyb_seq'::text)
refa | integer | not null
valb | text |
Indexes: tableb_pkey primary key btree (keyb)
essai=# alter table tableb add constraint lien_a_a foreing key (refa)
references tablea (keya);
ERROR: parser: parse error at or near "foreing" at character 44
essai=# alter table tableb add foreing key (refa) references tablea (keya);
ERROR: parser: parse error at or near "(" at character 36
WTF ????
Any ideas ?
Sincerely,
Emmanuel Charpentier
On Tue, 21 Jan 2003, Emmanuel Charpentier wrote:
> A curious problem with 7.3.1 : I wanted to add a foreing key constraint to
> a table already created and populated. No way, according to Postgres :
It helps if you spell foreign correctly. ;)
> essai=# alter table tableb add constraint lien_a_a foreing key (refa)
> references tablea (keya);
> ERROR: parser: parse error at or near "foreing" at character 44
> essai=# alter table tableb add foreing key (refa) references tablea (keya);
> ERROR: parser: parse error at or near "(" at character 36
Stephan Szabo wrote:
>On Tue, 21 Jan 2003, Emmanuel Charpentier wrote:
>
>
>>A curious problem with 7.3.1 : I wanted to add a foreing key constraint to
>>a table already created and populated. No way, according to Postgres :
>>
>
>It helps if you spell foreign correctly. ;)
>
[ Feeling *very* silly ... ] Apologies ! English not being my mother
tongue, I overlooked this (although I checked lots of time before
helling for help ...).
>
>
>essai=# alter table tableb add constraint lien_a_a foreing key (refa)
>references tablea (keya);
>ERROR: parser: parse error at or near "foreing" at character 44
>essai=# alter table tableb add foreing key (refa) references tablea (keya);
>ERROR: parser: parse error at or near "(" at character 36
>
Thank you !
Emmanuel Charpentier
spaces not allowed in names, perhaps?
1/20/2003 11:35:38 PM, Emmanuel Charpentier <charpent@bacbuc.dyndns.org> wrote:
>A curious problem with 7.3.1 : I wanted to add a foreing key constraint to
>a table already created and populated. No way, according to Postgres :
>
>Welcome to psql 7.3.1, the PostgreSQL interactive terminal.
>
>Type: \copyright for distribution terms
> \h for help with SQL commands
> \? for help on internal slash commands
> \g or terminate with semicolon to execute query
> \q to quit
>
>essai=# \d tablea
> Table "public.tablea"
> Column | Type | Modifiers
>--------+---------+----------------------------------------------------------
> keya | integer | not null default nextval('public.tablea_keya_seq'::text)
> vala | text |
>Indexes: tablea_pkey primary key btree (keya)
>
>essai=# \d tableb
> Table "public.tableb"
> Column | Type | Modifiers
>--------+---------+----------------------------------------------------------
> keyb | integer | not null default nextval('public.tableb_keyb_seq'::text)
> refa | integer | not null
> valb | text |
>Indexes: tableb_pkey primary key btree (keyb)
>
>essai=# alter table tableb add constraint lien_a_a foreing key (refa)
>references tablea (keya);
>ERROR: parser: parse error at or near "foreing" at character 44
>essai=# alter table tableb add foreing key (refa) references tablea (keya);
>ERROR: parser: parse error at or near "(" at character 36
>
>WTF ????
>
>Any ideas ?
>
>Sincerely,
>
> Emmanuel Charpentier
>
>
>---------------------------(end of broadcast)---------------------------
>TIP 2: you can get off all lists at once with the unregister command
> (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
>