| From: | Ferruccio Zamuner <nonsolosoft(at)diff(dot)org> |
|---|---|
| To: | pgsql-sql(at)postgresql(dot)org |
| Subject: | Multicolumn primary keys and multicolumn foreign keys |
| Date: | 2001-01-28 10:34:35 |
| Message-ID: | 3A73F5BB.F106BB29@diff.org |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | 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
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Christopher Sawtell | 2001-01-28 10:47:18 | Re: Re: Problem with Dates |
| Previous Message | Joe Conway | 2001-01-28 05:40:27 | current host and dbname info |