Re: referential integrity violation

From: Darren Ferguson <darren(at)crystalballinc(dot)com>
To: mk(at)fashaf(dot)co(dot)za
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: referential integrity violation
Date: 2002-10-18 14:51:24
Message-ID: Pine.LNX.4.44.0210181050150.28600-100000@thread.crystalballinc.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

When you say you are submitting a null value are submitting it as '' or
NULL??? If '' then this is not null but an empty string.

If you submit a NULL and the field allows NULL's then you will not see
this error.

HTH

On Fri, 18 Oct 2002 mk(at)fashaf(dot)co(dot)za wrote:

> Yes but i am submitting a null value, i submit nothing for slip_printer and i get that error. Same goes for any value that is not restrcited by NOT NULL, the reason i dont restrict them to null is that i want it to be able to be empty. So i still dont get it :) From what i can tell i may as well make everything NOT NULL and creat a dummy entry to reference to for NULL values.
>
> hope that makes sense :)
>
> Merritt
>
> On Fri, 18 Oct 2002 at 10:34:31 -0400, Darren Ferguson wrote:
> > 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(at)fashaf(dot)co(dot)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
> >
> >
> > ---------------------------(end of broadcast)---------------------------
> > TIP 2: you can get off all lists at once with the unregister command
> > (send "unregister YourEmailAddressHere" to majordomo(at)postgresql(dot)org)
>

--
Darren Ferguson

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Stephan Szabo 2002-10-18 15:12:59 Re: referential integrity violation
Previous Message mk 2002-10-18 14:49:26 Re: referential integrity violation