Re: referential integrity violation - Mailing list pgsql-general

From Darren Ferguson
Subject Re: referential integrity violation
Date
Msg-id Pine.LNX.4.44.0210181031260.28273-100000@thread.crystalballinc.com
Whole thread Raw
In response to referential integrity violation  (mk@fashaf.co.za)
Responses Re: referential integrity violation  (mk@fashaf.co.za)
List pgsql-general
What is happening is that you are trying to insert and id for slip
printer into the TABLE pc but the id does not exist in the slip printer
table.

Since you have slip_printer in pc table and you specified that it
references the slip_printer table id then you must have an id in slip
printer for it to insert into the pc table unless you insert a null value
since you did not specify the constraint on the table

HTH

On Fri, 18 Oct 2002 mk@fashaf.co.za wrote:

> Hi guys
>
> I have created a Pg DB, Ive included 2 of the tables.
> When inserting non NULL values everything works just fine,
> but when i want to leave a table empty i get the following error:
>
> EXEC: ERROR: referential integrity violation - key referenced from pc not found in slip_printer
>
> Im recieving the information from a Perl CGI form that is filled in and then INSERT it using perl DBI
>
> If any more information is needed please let me know. As far as i know i should be allowed to have null.
>
> TIA
> Merritt
>
> CREATE TABLE slip_printer (
>     id        SERIAL PRIMARY KEY,
>     make        VARCHAR(256) NOT NULL,
>     model        VARCHAR(256) NOT NULL,
>     UNIQUE (make, model)
> );
>
> CREATE TABLE pc (
>     id        SERIAL PRIMARY KEY,
>     store        INTEGER REFERENCES store (id) NOT NULL,
>     cpu_type    INTEGER REFERENCES cpu_type (id) NOT NULL,
>     cpu_mhz        INTEGER REFERENCES cpu_mhz (id) NOT NULL,
>     memory_type    INTEGER REFERENCES memory_type (id) NOT NULL,
>     memory_amount    INTEGER,    /* amount of chips/sticks, not size in MB */
>     hdd        INTEGER REFERENCES hdd (id),
>     hdd_serial    VARCHAR(256),
>     monitor        INTEGER REFERENCES monitor (id) NOT NULL,
>     slip_printer    INTEGER REFERENCES slip_printer (id),
>     report_printer    INTEGER REFERENCES report_printer (id),
>     cash_drawer    INTEGER REFERENCES cash_drawer (id) NOT NULL,
>     scanner        INTEGER REFERENCES scanner (id) NOT NULL,
>     ups        INTEGER REFERENCES ups (id),
>     modem        INTEGER REFERENCES modem (id)
> );
>

--
Darren Ferguson


pgsql-general by date:

Previous
From: mk@fashaf.co.za
Date:
Subject: referential integrity violation
Next
From: Dave Cramer
Date:
Subject: Re: [JDBC] Performance problem iterating a resultset