help with referential integrity
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
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 LessonsHere 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 RowINSERT INTO "Lessons" (lesson_name, order_num) VALUES ('test lesson', 2);
SELECT id FROM "Lessons";
| id |
9
1 RowINSERT 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