Multicolumn primary keys and multicolumn foreign keys - Mailing list pgsql-sql

From Ferruccio Zamuner
Subject Multicolumn primary keys and multicolumn foreign keys
Date
Msg-id 3A73F5BB.F106BB29@diff.org
Whole thread Raw
Responses Re: Multicolumn primary keys and multicolumn foreign keys  (chard <chard@hindang.msuiit.edu.ph>)
List pgsql-sql
Hi,

I've found a trouble and I've tried to avoid it without success:

-------
create table companies (      id serial not null primary key,      firm_name text not null,      activity text
);

create table customers (      id int not null references companies,      seller_id int not null references companies,
  note text,      primary key (id,seller_id)
 
);

create table invoices (      seller_id int4 not null references companies, /* who send invoice
*/      customer_id int4 not null,  /* who receive the invoice and pay
for it */      invoice_no int4 not null unique,      invoice_date date,
      primary key (seller_id,invoice_no,invoice_date),      foreign key (seller_id, customer_id) references customers
);

INSERT INTO "companies" ("firm_name","activity") VALUES
('NonSoLoSoft','ASP');
INSERT INTO "companies" ("firm_name","activity") VALUES
('MyFavouriteCustomer','Buy and pay');
INSERT INTO "customers" ("id","seller_id","note") VALUES (2,1,'customer
since 1966');

INSERT INTO "invoices" (seller_id,customer_id,invoice_no,invoice_date)
values (1,2,1,'now');

ERROR:  <unnamed> referential integrity violation - key referenced from
invoices not found in customers

select * from customers;id | seller_id |        note
----+-----------+--------------------- 2 |         1 | customer since 1816
(1 row)

-------

Why have I found this ERROR about referential integrity violation, if
the record to reference is
in the customer table?

Thank you in advance,            \fer




pgsql-sql by date:

Previous
From: Christopher Sawtell
Date:
Subject: Re: Re: Problem with Dates
Next
From: chard
Date:
Subject: Re: Multicolumn primary keys and multicolumn foreign keys