help with referential integrity

Started by Soma Interestingover 25 years ago2 messagesgeneral
Jump to latest
#1Soma Interesting
dfunct@telus.net

I'm attempting, for the first time, to make use of referential integrity,
but I'm getting an error.

Warning: PostgreSQL query failed: ERROR: referential integrity violation -
key referenced from LessonsPages not found in Lessons

Here is the table's structures:

CREATE SEQUENCE "LessonsPages_id_seq";
CREATE TABLE "LessonsPages" (
"id" int4 DEFAULT nextval('"LessonsPages_id_seq"') NOT NULL,
"lid" int4 NOT NULL
REFERENCES "Pages"
ON DELETE CASCADE,
"pid" int4 NOT NULL
REFERENCES "Lessons"
ON DELETE CASCADE,
PRIMARY KEY ("lid", "pid")
);

CREATE SEQUENCE "Lessons_id_seq";
CREATE TABLE "Lessons" (
"id" int4 nextval('"Lessons_id_seq"') NOT NULL,
"page_name" char(64),
"summary_email" bool,
"order_num" int2,
PRIMARY KEY ("id")
);

CREATE SEQUENCE "Pages_id_seq";
CREATE TABLE "Pages" (
"id" int4 nextval('"Pages_id_seq"') NOT NULL,
"page_name" char(64),
"summary_email" bool,
"order_num" int2,
PRIMARY KEY ("id")
);

The error comes when:

INSERT INTO "Pages" (order_num) VALUES (1);
SELECT id FROM "Pages";
| id |
16
1 Row

INSERT INTO "Lessons" (lesson_name, order_num) VALUES ('test lesson', 2);
SELECT id FROM "Lessons";
| id |
9
1 Row

INSERT INTO "LessonsPages" (lid,pid) VALUES (9,16);

What am I doing wrong?

- - - - - - -
- - - - -
WARNING: Some experts believe that use of any keyboard may cause serious
injury.
Consult Users Guide.
dfunct@telus.net

#2Stephan Szabo
sszabo@megazone23.bigpanda.com
In reply to: Soma Interesting (#1)
Re: help with referential integrity

On Mon, 11 Dec 2000, Soma Interesting wrote:

I'm attempting, for the first time, to make use of referential integrity,
but I'm getting an error.

Warning: PostgreSQL query failed: ERROR: referential integrity violation -
key referenced from LessonsPages not found in Lessons

Here is the table's structures:

CREATE SEQUENCE "LessonsPages_id_seq";
CREATE TABLE "LessonsPages" (
"id" int4 DEFAULT nextval('"LessonsPages_id_seq"') NOT NULL,
"lid" int4 NOT NULL
REFERENCES "Pages"
ON DELETE CASCADE,
"pid" int4 NOT NULL
REFERENCES "Lessons"
ON DELETE CASCADE,
PRIMARY KEY ("lid", "pid")
);

Did you really want lid referencing pages and
pid referencing lessons rather than the other
way around? It seems below you're inserting
things the other way around.

Show quoted text

The error comes when:

INSERT INTO "Pages" (order_num) VALUES (1);
SELECT id FROM "Pages";
| id |
16
1 Row

INSERT INTO "Lessons" (lesson_name, order_num) VALUES ('test lesson', 2);
SELECT id FROM "Lessons";
| id |
9
1 Row

INSERT INTO "LessonsPages" (lid,pid) VALUES (9,16);

What am I doing wrong?

- - - - - - -
- - - - -
WARNING: Some experts believe that use of any keyboard may cause serious
injury.
Consult Users Guide.
dfunct@telus.net