Thread: Bug about 'Foreign Key'

Bug about 'Foreign Key'

From
"Cid R Andrade"
Date:
PostgreSQL Developers,

I have a PostgreSQL 7.0.2 running at Conectiva Linux, with kernel 2.2.14, w=
ith 56 Mb of data.

I'd created a table:
Create Table Andamento (
    Etiqueta integer not null,
    CodTecnico integer not null,
    DtInicio timestamp not null,
    DtLiberacao timestamp null,
    Primary Key (Etiqueta),
    Foreign Key (Etiquetas) References Etiquetas (Etiqueta) On Delete Casca=
de)
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20
I wrong a field name in Foreign Key declaration, and PostgreSQL created it!
Before this, I always named triggers and constraints, but, at this time, I'=
d tried this way.
Well, look the trigger at table Etiquetas:
CREATE CONSTRAINT TRIGGER "<unnamed>" AFTER DELETE ON "etiquetas"  NOT DEFE=
RRABLE INITIALLY IMMEDIATE FOR EACH ROW EXECUTE PROCEDURE "RI_FKey_noaction=
_del" ('<unnamed>', 'andamento', 'etiquetas', 'UNSPECIFIED', 'etiquetas', '=
etiqueta');

It says exists a field named etiquetas at table Andamento.
I'd droped table andamento (Drop Table Andamento) and the trigger referenci=
ng it didn't droped.

I solved it with pg_dump.

Re: Bug about 'Foreign Key'

From
Stephan Szabo
Date:
This should be fixed for 7.1, it now checks that the
referencing columns exist on the fk table and that the
referenced columns are part of a unique index
[our unique/pkey] on the referenced table.

On Tue, 27 Mar 2001, Cid R Andrade wrote:

> PostgreSQL Developers,
>
> I have a PostgreSQL 7.0.2 running at Conectiva Linux, with kernel 2.2.14, with 56 Mb of data.
>
> I'd created a table:
> Create Table Andamento (
>     Etiqueta integer not null,
>     CodTecnico integer not null,
>     DtInicio timestamp not null,
>     DtLiberacao timestamp null,
>     Primary Key (Etiqueta),
>     Foreign Key (Etiquetas) References Etiquetas (Etiqueta) On Delete Cascade)
>                      I wrong a field name in Foreign Key declaration,
> and PostgreSQL created it! Before this, I always named triggers and
> constraints, but, at this time, I'd tried this way. Well, look the
> trigger at table Etiquetas: CREATE CONSTRAINT TRIGGER "<unnamed>"
> AFTER DELETE ON "etiquetas"  NOT DEFERRABLE INITIALLY IMMEDIATE FOR
> EACH ROW EXECUTE PROCEDURE "RI_FKey_noaction_del" ('<unnamed>',
> 'andamento', 'etiquetas', 'UNSPECIFIED', 'etiquetas', 'etiqueta');
>
> It says exists a field named etiquetas at table Andamento.
> I'd droped table andamento (Drop Table Andamento) and the trigger referencing it didn't droped.
>
> I solved it with pg_dump.
>