diff options
| author | Tom Lane | 2002-07-12 18:43:19 +0000 |
|---|---|---|
| committer | Tom Lane | 2002-07-12 18:43:19 +0000 |
| commit | 7c6df91dda27accab3097390ef0d21d93028c7a1 (patch) | |
| tree | 5705b975e8de4edf82252e6df28e0bd57c83cb95 /src/test | |
| parent | 791a40f943e2a9353c5823fb4f2bd446ec623d38 (diff) | |
Second phase of committing Rod Taylor's pg_depend/pg_constraint patch.
pg_relcheck is gone; CHECK, UNIQUE, PRIMARY KEY, and FOREIGN KEY
constraints all have real live entries in pg_constraint. pg_depend
exists, and RESTRICT/CASCADE options work on most kinds of DROP;
however, pg_depend is not yet very well populated with dependencies.
(Most of the ones that are present at this point just replace formerly
hardwired associations, such as the implicit drop of a relation's pg_type
entry when the relation is dropped.) Need to add more logic to create
dependency entries, improve pg_dump to dump constraints in place of
indexes and triggers, and add some regression tests.
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/regress/expected/alter_table.out | 16 | ||||
| -rw-r--r-- | src/test/regress/expected/domain.out | 6 | ||||
| -rw-r--r-- | src/test/regress/expected/foreign_key.out | 63 | ||||
| -rw-r--r-- | src/test/regress/expected/sanity_check.out | 5 | ||||
| -rw-r--r-- | src/test/regress/output/constraints.source | 4 | ||||
| -rw-r--r-- | src/test/regress/sql/alter_table.sql | 8 | ||||
| -rw-r--r-- | src/test/regress/sql/domain.sql | 5 | ||||
| -rw-r--r-- | src/test/regress/sql/foreign_key.sql | 8 |
8 files changed, 52 insertions, 63 deletions
diff --git a/src/test/regress/expected/alter_table.out b/src/test/regress/expected/alter_table.out index f2e31919cc5..2dc64f3ccfa 100644 --- a/src/test/regress/expected/alter_table.out +++ b/src/test/regress/expected/alter_table.out @@ -340,8 +340,6 @@ ERROR: UNIQUE constraint matching given keys for referenced table "tmp4" not fo DROP TABLE tmp5; DROP TABLE tmp4; DROP TABLE tmp3; -NOTICE: DROP TABLE implicitly drops referential integrity trigger from table "tmp2" -NOTICE: DROP TABLE implicitly drops referential integrity trigger from table "tmp2" DROP TABLE tmp2; -- Foreign key adding test with mixed types -- Note: these tables are TEMP to avoid name conflicts when this test @@ -369,9 +367,9 @@ NOTICE: ALTER TABLE will create implicit trigger(s) for FOREIGN KEY check(s) -- As should this ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest1) references pktable(ptest1); NOTICE: ALTER TABLE will create implicit trigger(s) for FOREIGN KEY check(s) -DROP TABLE pktable; -NOTICE: DROP TABLE implicitly drops referential integrity trigger from table "fktable" -NOTICE: DROP TABLE implicitly drops referential integrity trigger from table "fktable" +DROP TABLE pktable cascade; +NOTICE: Drop cascades to constraint $2 on table fktable +NOTICE: Drop cascades to constraint $1 on table fktable DROP TABLE fktable; CREATE TEMP TABLE PKTABLE (ptest1 int, ptest2 inet, PRIMARY KEY(ptest1, ptest2)); @@ -382,16 +380,16 @@ ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest1, ftest2) references pktable; NOTICE: ALTER TABLE will create implicit trigger(s) for FOREIGN KEY check(s) ERROR: Unable to identify an operator '=' for types 'cidr' and 'integer' You will have to retype this query using an explicit cast --- Again, so should this... DROP TABLE FKTABLE; +-- Again, so should this... CREATE TEMP TABLE FKTABLE (ftest1 cidr, ftest2 timestamp); ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest1, ftest2) references pktable(ptest1, ptest2); NOTICE: ALTER TABLE will create implicit trigger(s) for FOREIGN KEY check(s) ERROR: Unable to identify an operator '=' for types 'cidr' and 'integer' You will have to retype this query using an explicit cast --- This fails because we mixed up the column ordering DROP TABLE FKTABLE; +-- This fails because we mixed up the column ordering CREATE TEMP TABLE FKTABLE (ftest1 int, ftest2 inet); ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest1, ftest2) references pktable(ptest2, ptest1); @@ -445,7 +443,7 @@ create table atacc1 (test int check (test>3), test2 int); alter table atacc1 add check (test2>test); -- should fail for $2 insert into atacc1 (test2, test) values (3, 4); -ERROR: ExecInsert: rejected due to CHECK constraint $2 +ERROR: ExecInsert: rejected due to CHECK constraint $1 drop table atacc1; -- inheritance related tests create table atacc1 (test int); @@ -628,7 +626,7 @@ alter table atacc1 add constraint "atacc1_pkey" primary key (test); NOTICE: ALTER TABLE / ADD PRIMARY KEY will create implicit index 'atacc1_pkey' for table 'atacc1' alter table atacc1 alter column test drop not null; ERROR: ALTER TABLE: Attribute "test" is in a primary key -drop index atacc1_pkey; +alter table atacc1 drop constraint "atacc1_pkey"; alter table atacc1 alter column test drop not null; insert into atacc1 values (null); alter table atacc1 alter test set not null; diff --git a/src/test/regress/expected/domain.out b/src/test/regress/expected/domain.out index 75c83fc7ebf..915b420b9a2 100644 --- a/src/test/regress/expected/domain.out +++ b/src/test/regress/expected/domain.out @@ -1,11 +1,13 @@ -- Test Comment / Drop create domain domaindroptest int4; comment on domain domaindroptest is 'About to drop this..'; +-- currently this will be disallowed create domain basetypetest domaindroptest; ERROR: DefineDomain: domaindroptest is not a basetype -drop domain domaindroptest cascade; -ERROR: DROP DOMAIN does not support the CASCADE keyword drop domain domaindroptest; +-- this should fail because already gone +drop domain domaindroptest cascade; +ERROR: Type "domaindroptest" does not exist -- TEST Domains. create domain domainvarchar varchar(5); create domain domainnumeric numeric(8,2); diff --git a/src/test/regress/expected/foreign_key.out b/src/test/regress/expected/foreign_key.out index b8be87228bb..f5272891b9f 100644 --- a/src/test/regress/expected/foreign_key.out +++ b/src/test/regress/expected/foreign_key.out @@ -22,7 +22,7 @@ INSERT INTO FKTABLE VALUES (3, 4); INSERT INTO FKTABLE VALUES (NULL, 1); -- Insert a failed row into FK TABLE INSERT INTO FKTABLE VALUES (100, 2); -ERROR: <unnamed> referential integrity violation - key referenced from fktable not found in pktable +ERROR: $1 referential integrity violation - key referenced from fktable not found in pktable -- Check FKTABLE SELECT * FROM FKTABLE; ftest1 | ftest2 @@ -55,9 +55,8 @@ SELECT * FROM FKTABLE; 1 | 3 (3 rows) -DROP TABLE PKTABLE; -NOTICE: DROP TABLE implicitly drops referential integrity trigger from table "fktable" DROP TABLE FKTABLE; +DROP TABLE PKTABLE; -- -- check set NULL and table constraint on multiple columns -- @@ -138,8 +137,8 @@ SELECT * FROM FKTABLE; | | 8 (5 rows) -DROP TABLE PKTABLE; -NOTICE: DROP TABLE implicitly drops referential integrity trigger from table "fktable" +DROP TABLE PKTABLE CASCADE; +NOTICE: Drop cascades to constraint constrname on table fktable DROP TABLE FKTABLE; -- -- check set default and table constraint on multiple columns @@ -223,8 +222,13 @@ SELECT * FROM FKTABLE; -1 | -2 | 8 (5 rows) +-- this should fail for lack of CASCADE DROP TABLE PKTABLE; -NOTICE: DROP TABLE implicitly drops referential integrity trigger from table "fktable" +NOTICE: constraint constrname2 on table fktable depends on table pktable +ERROR: Cannot drop table pktable because other objects depend on it + Use DROP ... CASCADE to drop the dependent objects too +DROP TABLE PKTABLE CASCADE; +NOTICE: Drop cascades to constraint constrname2 on table fktable DROP TABLE FKTABLE; -- -- First test, check with no on delete or on update @@ -246,7 +250,7 @@ INSERT INTO FKTABLE VALUES (3, 4); INSERT INTO FKTABLE VALUES (NULL, 1); -- Insert a failed row into FK TABLE INSERT INTO FKTABLE VALUES (100, 2); -ERROR: <unnamed> referential integrity violation - key referenced from fktable not found in pktable +ERROR: $1 referential integrity violation - key referenced from fktable not found in pktable -- Check FKTABLE SELECT * FROM FKTABLE; ftest1 | ftest2 @@ -270,7 +274,7 @@ SELECT * FROM PKTABLE; -- Delete a row from PK TABLE (should fail) DELETE FROM PKTABLE WHERE ptest1=1; -ERROR: <unnamed> referential integrity violation - key in pktable still referenced from fktable +ERROR: $1 referential integrity violation - key in pktable still referenced from fktable -- Delete a row from PK TABLE (should succeed) DELETE FROM PKTABLE WHERE ptest1=5; -- Check PKTABLE for deletes @@ -285,7 +289,7 @@ SELECT * FROM PKTABLE; -- Update a row from PK TABLE (should fail) UPDATE PKTABLE SET ptest1=0 WHERE ptest1=2; -ERROR: <unnamed> referential integrity violation - key in pktable still referenced from fktable +ERROR: $1 referential integrity violation - key in pktable still referenced from fktable -- Update a row from PK TABLE (should succeed) UPDATE PKTABLE SET ptest1=0 WHERE ptest1=4; -- Check PKTABLE for updates @@ -298,9 +302,8 @@ SELECT * FROM PKTABLE; 0 | Test4 (4 rows) -DROP TABLE PKTABLE; -NOTICE: DROP TABLE implicitly drops referential integrity trigger from table "fktable" DROP TABLE FKTABLE; +DROP TABLE PKTABLE; -- MATCH unspecified -- Base test restricting update/delete CREATE TABLE PKTABLE ( ptest1 int, ptest2 int, ptest3 int, ptest4 text, PRIMARY KEY(ptest1, ptest2, ptest3) ); @@ -363,8 +366,6 @@ SELECT * from FKTABLE; (5 rows) DROP TABLE FKTABLE; -NOTICE: DROP TABLE implicitly drops referential integrity trigger from table "pktable" -NOTICE: DROP TABLE implicitly drops referential integrity trigger from table "pktable" DROP TABLE PKTABLE; -- cascade update/delete CREATE TABLE PKTABLE ( ptest1 int, ptest2 int, ptest3 int, ptest4 text, PRIMARY KEY(ptest1, ptest2, ptest3) ); @@ -462,8 +463,6 @@ SELECT * from FKTABLE; (4 rows) DROP TABLE FKTABLE; -NOTICE: DROP TABLE implicitly drops referential integrity trigger from table "pktable" -NOTICE: DROP TABLE implicitly drops referential integrity trigger from table "pktable" DROP TABLE PKTABLE; -- set null update / set default delete CREATE TABLE PKTABLE ( ptest1 int, ptest2 int, ptest3 int, ptest4 text, PRIMARY KEY(ptest1, ptest2, ptest3) ); @@ -568,8 +567,6 @@ SELECT * from FKTABLE; (6 rows) DROP TABLE FKTABLE; -NOTICE: DROP TABLE implicitly drops referential integrity trigger from table "pktable" -NOTICE: DROP TABLE implicitly drops referential integrity trigger from table "pktable" DROP TABLE PKTABLE; -- set default update / set null delete CREATE TABLE PKTABLE ( ptest1 int, ptest2 int, ptest3 int, ptest4 text, PRIMARY KEY(ptest1, ptest2, ptest3) ); @@ -687,8 +684,6 @@ SELECT * from FKTABLE; (7 rows) DROP TABLE FKTABLE; -NOTICE: DROP TABLE implicitly drops referential integrity trigger from table "pktable" -NOTICE: DROP TABLE implicitly drops referential integrity trigger from table "pktable" DROP TABLE PKTABLE; CREATE TABLE PKTABLE (ptest1 int PRIMARY KEY); NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index 'pktable_pkey' for table 'pktable' @@ -734,14 +729,10 @@ ERROR: Unable to identify an operator '=' for types 'inet' and 'integer' CREATE TABLE FKTABLE (ftest1 varchar REFERENCES pktable); NOTICE: CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s) DROP TABLE FKTABLE; -NOTICE: DROP TABLE implicitly drops referential integrity trigger from table "pktable" -NOTICE: DROP TABLE implicitly drops referential integrity trigger from table "pktable" -- As should this CREATE TABLE FKTABLE (ftest1 varchar REFERENCES pktable(ptest1)); NOTICE: CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s) DROP TABLE FKTABLE; -NOTICE: DROP TABLE implicitly drops referential integrity trigger from table "pktable" -NOTICE: DROP TABLE implicitly drops referential integrity trigger from table "pktable" DROP TABLE PKTABLE; -- Two columns, two tables CREATE TABLE PKTABLE (ptest1 int, ptest2 inet, PRIMARY KEY(ptest1, ptest2)); @@ -775,14 +766,10 @@ ERROR: Unable to identify an operator '=' for types 'integer' and 'inet' CREATE TABLE FKTABLE (ftest1 int, ftest2 inet, FOREIGN KEY(ftest2, ftest1) REFERENCES pktable(ptest2, ptest1)); NOTICE: CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s) DROP TABLE FKTABLE; -NOTICE: DROP TABLE implicitly drops referential integrity trigger from table "pktable" -NOTICE: DROP TABLE implicitly drops referential integrity trigger from table "pktable" -- As does this CREATE TABLE FKTABLE (ftest1 int, ftest2 inet, FOREIGN KEY(ftest1, ftest2) REFERENCES pktable(ptest1, ptest2)); NOTICE: CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s) DROP TABLE FKTABLE; -NOTICE: DROP TABLE implicitly drops referential integrity trigger from table "pktable" -NOTICE: DROP TABLE implicitly drops referential integrity trigger from table "pktable" DROP TABLE PKTABLE; -- Two columns, same table -- Make sure this still works... @@ -832,25 +819,23 @@ insert into pktable(base1) values (1); insert into pktable(base1) values (2); -- let's insert a non-existant fktable value insert into fktable(ftest1) values (3); -ERROR: <unnamed> referential integrity violation - key referenced from fktable not found in pktable +ERROR: $1 referential integrity violation - key referenced from fktable not found in pktable -- let's make a valid row for that insert into pktable(base1) values (3); insert into fktable(ftest1) values (3); -- let's try removing a row that should fail from pktable delete from pktable where base1>2; -ERROR: <unnamed> referential integrity violation - key in pktable still referenced from fktable +ERROR: $1 referential integrity violation - key in pktable still referenced from fktable -- okay, let's try updating all of the base1 values to *4 -- which should fail. update pktable set base1=base1*4; -ERROR: <unnamed> referential integrity violation - key in pktable still referenced from fktable +ERROR: $1 referential integrity violation - key in pktable still referenced from fktable -- okay, let's try an update that should work. update pktable set base1=base1*4 where base1<3; -- and a delete that should work delete from pktable where base1>3; -- cleanup drop table fktable; -NOTICE: DROP TABLE implicitly drops referential integrity trigger from table "pktable" -NOTICE: DROP TABLE implicitly drops referential integrity trigger from table "pktable" delete from pktable; -- Now 2 columns 2 tables, matching types create table fktable (ftest1 int, ftest2 int, foreign key(ftest1, ftest2) references pktable(base1, ptest1)); @@ -860,25 +845,23 @@ insert into pktable(base1, ptest1) values (1, 1); insert into pktable(base1, ptest1) values (2, 2); -- let's insert a non-existant fktable value insert into fktable(ftest1, ftest2) values (3, 1); -ERROR: <unnamed> referential integrity violation - key referenced from fktable not found in pktable +ERROR: $1 referential integrity violation - key referenced from fktable not found in pktable -- let's make a valid row for that insert into pktable(base1,ptest1) values (3, 1); insert into fktable(ftest1, ftest2) values (3, 1); -- let's try removing a row that should fail from pktable delete from pktable where base1>2; -ERROR: <unnamed> referential integrity violation - key in pktable still referenced from fktable +ERROR: $1 referential integrity violation - key in pktable still referenced from fktable -- okay, let's try updating all of the base1 values to *4 -- which should fail. update pktable set base1=base1*4; -ERROR: <unnamed> referential integrity violation - key in pktable still referenced from fktable +ERROR: $1 referential integrity violation - key in pktable still referenced from fktable -- okay, let's try an update that should work. update pktable set base1=base1*4 where base1<3; -- and a delete that should work delete from pktable where base1>3; -- cleanup drop table fktable; -NOTICE: DROP TABLE implicitly drops referential integrity trigger from table "pktable" -NOTICE: DROP TABLE implicitly drops referential integrity trigger from table "pktable" drop table pktable; drop table pktable_base; -- Now we'll do one all in 1 table with 2 columns of matching types @@ -893,13 +876,13 @@ insert into pktable (base1, ptest1, base2, ptest2) values (2, 2, 2, 1); insert into pktable (base1, ptest1, base2, ptest2) values (1, 3, 2, 2); -- fails (3,2) isn't in base1, ptest1 insert into pktable (base1, ptest1, base2, ptest2) values (2, 3, 3, 2); -ERROR: <unnamed> referential integrity violation - key referenced from pktable not found in pktable +ERROR: $1 referential integrity violation - key referenced from pktable not found in pktable -- fails (2,2) is being referenced delete from pktable where base1=2; -ERROR: <unnamed> referential integrity violation - key in pktable still referenced from pktable +ERROR: $1 referential integrity violation - key in pktable still referenced from pktable -- fails (1,1) is being referenced (twice) update pktable set base1=3 where base1=1; -ERROR: <unnamed> referential integrity violation - key referenced from pktable not found in pktable +ERROR: $1 referential integrity violation - key referenced from pktable not found in pktable -- this sequence of two deletes will work, since after the first there will be no (2,*) references delete from pktable where base2=2; delete from pktable where base1=2; diff --git a/src/test/regress/expected/sanity_check.out b/src/test/regress/expected/sanity_check.out index 37544dd0ccb..2e0cf3a0330 100644 --- a/src/test/regress/expected/sanity_check.out +++ b/src/test/regress/expected/sanity_check.out @@ -38,8 +38,10 @@ SELECT relname, relhasindex pg_attrdef | t pg_attribute | t pg_class | t + pg_constraint | t pg_conversion | t pg_database | t + pg_depend | t pg_description | t pg_group | t pg_index | t @@ -50,7 +52,6 @@ SELECT relname, relhasindex pg_opclass | t pg_operator | t pg_proc | t - pg_relcheck | t pg_rewrite | t pg_shadow | t pg_statistic | t @@ -61,5 +62,5 @@ SELECT relname, relhasindex shighway | t tenk1 | t tenk2 | t -(51 rows) +(52 rows) diff --git a/src/test/regress/output/constraints.source b/src/test/regress/output/constraints.source index 3dafd9a8771..8935dae8734 100644 --- a/src/test/regress/output/constraints.source +++ b/src/test/regress/output/constraints.source @@ -123,7 +123,7 @@ INSERT INTO INSERT_TBL(y) VALUES ('Y'); ERROR: ExecInsert: rejected due to CHECK constraint insert_con INSERT INTO INSERT_TBL(y) VALUES ('Y'); INSERT INTO INSERT_TBL(x,z) VALUES (1, -2); -ERROR: ExecInsert: rejected due to CHECK constraint $2 +ERROR: ExecInsert: rejected due to CHECK constraint $1 INSERT INTO INSERT_TBL(z,x) VALUES (-7, 7); INSERT INTO INSERT_TBL VALUES (5, 'check failed', -5); ERROR: ExecInsert: rejected due to CHECK constraint insert_con @@ -139,7 +139,7 @@ SELECT '' AS four, * FROM INSERT_TBL; (4 rows) INSERT INTO INSERT_TBL(y,z) VALUES ('check failed', 4); -ERROR: ExecInsert: rejected due to CHECK constraint $2 +ERROR: ExecInsert: rejected due to CHECK constraint $1 INSERT INTO INSERT_TBL(x,y) VALUES (5, 'check failed'); ERROR: ExecInsert: rejected due to CHECK constraint insert_con INSERT INTO INSERT_TBL(x,y) VALUES (5, '!check failed'); diff --git a/src/test/regress/sql/alter_table.sql b/src/test/regress/sql/alter_table.sql index a46e5aaa22f..f39998073d7 100644 --- a/src/test/regress/sql/alter_table.sql +++ b/src/test/regress/sql/alter_table.sql @@ -250,7 +250,7 @@ CREATE TEMP TABLE FKTABLE (ftest1 varchar); ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest1) references pktable; -- As should this ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest1) references pktable(ptest1); -DROP TABLE pktable; +DROP TABLE pktable cascade; DROP TABLE fktable; CREATE TEMP TABLE PKTABLE (ptest1 int, ptest2 inet, @@ -258,13 +258,13 @@ CREATE TEMP TABLE PKTABLE (ptest1 int, ptest2 inet, -- This should fail, because we just chose really odd types CREATE TEMP TABLE FKTABLE (ftest1 cidr, ftest2 timestamp); ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest1, ftest2) references pktable; --- Again, so should this... DROP TABLE FKTABLE; +-- Again, so should this... CREATE TEMP TABLE FKTABLE (ftest1 cidr, ftest2 timestamp); ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest1, ftest2) references pktable(ptest1, ptest2); --- This fails because we mixed up the column ordering DROP TABLE FKTABLE; +-- This fails because we mixed up the column ordering CREATE TEMP TABLE FKTABLE (ftest1 int, ftest2 inet); ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest1, ftest2) references pktable(ptest2, ptest1); @@ -486,7 +486,7 @@ alter table foo alter column bar drop not null; create table atacc1 (test int not null); alter table atacc1 add constraint "atacc1_pkey" primary key (test); alter table atacc1 alter column test drop not null; -drop index atacc1_pkey; +alter table atacc1 drop constraint "atacc1_pkey"; alter table atacc1 alter column test drop not null; insert into atacc1 values (null); alter table atacc1 alter test set not null; diff --git a/src/test/regress/sql/domain.sql b/src/test/regress/sql/domain.sql index 055c377decb..77dccb2aaca 100644 --- a/src/test/regress/sql/domain.sql +++ b/src/test/regress/sql/domain.sql @@ -4,11 +4,14 @@ create domain domaindroptest int4; comment on domain domaindroptest is 'About to drop this..'; +-- currently this will be disallowed create domain basetypetest domaindroptest; -drop domain domaindroptest cascade; drop domain domaindroptest; +-- this should fail because already gone +drop domain domaindroptest cascade; + -- TEST Domains. diff --git a/src/test/regress/sql/foreign_key.sql b/src/test/regress/sql/foreign_key.sql index a7cb5842233..c6b50e4b32e 100644 --- a/src/test/regress/sql/foreign_key.sql +++ b/src/test/regress/sql/foreign_key.sql @@ -40,8 +40,8 @@ UPDATE PKTABLE SET ptest1=1 WHERE ptest1=2; -- Check FKTABLE for update of matched row SELECT * FROM FKTABLE; -DROP TABLE PKTABLE; DROP TABLE FKTABLE; +DROP TABLE PKTABLE; -- -- check set NULL and table constraint on multiple columns @@ -92,7 +92,7 @@ UPDATE PKTABLE SET ptest1=1 WHERE ptest1=2; -- Check FKTABLE for update of matched row SELECT * FROM FKTABLE; -DROP TABLE PKTABLE; +DROP TABLE PKTABLE CASCADE; DROP TABLE FKTABLE; -- @@ -147,7 +147,9 @@ UPDATE PKTABLE SET ptest1=1 WHERE ptest1=2; -- Check FKTABLE for update of matched row SELECT * FROM FKTABLE; +-- this should fail for lack of CASCADE DROP TABLE PKTABLE; +DROP TABLE PKTABLE CASCADE; DROP TABLE FKTABLE; @@ -197,8 +199,8 @@ UPDATE PKTABLE SET ptest1=0 WHERE ptest1=4; -- Check PKTABLE for updates SELECT * FROM PKTABLE; -DROP TABLE PKTABLE; DROP TABLE FKTABLE; +DROP TABLE PKTABLE; -- MATCH unspecified |
