The following bug has been logged online: Bug reference: 6048 Logged by: Artiom Makarov Email address: artiom.maka...@gmail.com PostgreSQL version: 9.04 Operating system: 2.6.32-30-server #59-Ubuntu SMP Tue Mar 1 22:46:09 UTC 2011 x86_64 GNU/Linux Description: TRUNCATE vs TRUNCATE CASCADE: misleading message Details:
create table tr_test1(id1 int, primary key(id1)); create table tr_test2(id2 int, id int, primary key(id2), foreign key (id) references tr_test1(id1) MATCH SIMPLE ON UPDATE RESTRICT ON DELETE RESTRICT); create table tr_test3(id3 int, id int, primary key(id3), foreign key (id) references tr_test2(id2) MATCH SIMPLE ON UPDATE RESTRICT ON DELETE RESTRICT); insert into tr_test1(id1) values (1); insert into tr_test2(id2,id) values (1,1); insert into tr_test2(id2,id) values (2,1); insert into tr_test3(id3,id) values (1,2); truncate tr_test1; ERROR: cannot truncate a table referenced in a foreign key constraint SQL state: 0A000 Detail: Table "tr_test2" references "tr_test1". Hint: Truncate table "tr_test2" at the same time, or use TRUNCATE ... CASCADE. This is definetly misleading message, because of when applying truncate tr_test1 CASCADE; all 3 tables truncated: NOTICE: truncate cascades to table "tr_test2" NOTICE: truncate cascades to table "tr_test3" While drop schema public; command list all affected objects: ERROR: cannot drop schema public because other objects depend on it SQL state: 2BP01 Detail: table tr_test1 depends on schema public table tr_test2 depends on schema public table tr_test3 depends on schema public Hint: Use DROP ... CASCADE to drop the dependent objects too. -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs