Re: serial type as foreign key referential integrity violation

From: "Shridhar Daithankar" <shridhar_daithankar(at)persistent(dot)co(dot)in>
To: pgsql-hackers(at)postgresql(dot)org
Subject: Re: serial type as foreign key referential integrity violation
Date: 2002-09-03 13:51:32
Message-ID: 3D750BBC.18613.4D464337@localhost
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 31 Aug 2002 at 5:28, Zhicong Leo Liang wrote:

> Hi all,
> Just briefly describe my problem.
> I have two tables.
> create table A(
> a1 serial primary key,
> a2 varchars(10)

that should be varchar..

> );
> create table B(
> b1 integer primary key,
> b2 Integer,
> foreign key(b2) references a(a1)
> )
> insert into A values('123');
> select a1 from A where a2='123'
> >--
> >a1
> >--
> >1
> >--
> insert into B values (1,1);
> ERROR!! referential integrity violation - key referenced from B not found in A.

this works.. I guess it's matter of writing a bit cleaner sql if nothing else.
I am using postgresql-7.2-12mdk with mandrake8.2.

I don't know which approach is better or correct, yours or mine. But this
solves your problems at least..

test=# select * from a;
a1 | a2
-----+----
123 |
(1 row)

test=# insert into A(a2) values('123');
INSERT 4863345 1
test=# select * from a;
a1 | a2
-----+-----
123 |
1 | 123
(2 rows)

test=# insert into b(b1,b2) values(1,1);
INSERT 4863346 1
test=# select * from a;
a1 | a2
-----+-----
123 |
1 | 123
(2 rows)

test=# select * from b;
b1 | b2
----+----
1 | 1
(1 row)

test=#

Bye
Shridhar

--
Concept, n.: Any "idea" for which an outside consultant billed you more than
$25,000.

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message terry 2002-09-03 13:54:01 Re: pgaccess - where to store the own data
Previous Message Tom Lane 2002-09-03 13:49:54 Re: possible vacuum improvement?