SET search_path TO truncate_cascade_tests_schema; -- Test truncate error on table with dependencies TRUNCATE table_with_pk; ERROR: cannot truncate a table referenced in a foreign key constraint DETAIL: Table "table_with_fk_1" references "table_with_pk". HINT: Truncate table "table_with_fk_1" at the same time, or use TRUNCATE ... CASCADE. -- Test truncate rollback on table with dependencies SELECT COUNT(*) FROM table_with_fk_1; count --------------------------------------------------------------------- 10 (1 row) SELECT COUNT(*) FROM table_with_fk_2; count --------------------------------------------------------------------- 10 (1 row) BEGIN; TRUNCATE table_with_pk CASCADE; SELECT COUNT(*) FROM table_with_fk_1; count --------------------------------------------------------------------- 0 (1 row) SELECT COUNT(*) FROM table_with_fk_2; count --------------------------------------------------------------------- 0 (1 row) ROLLBACK; SELECT COUNT(*) FROM table_with_fk_1; count --------------------------------------------------------------------- 10 (1 row) SELECT COUNT(*) FROM table_with_fk_2; count --------------------------------------------------------------------- 10 (1 row) -- Test truncate on table with dependencies SELECT COUNT(*) FROM table_with_pk; count --------------------------------------------------------------------- 10 (1 row) SELECT COUNT(*) FROM table_with_fk_1; count --------------------------------------------------------------------- 10 (1 row) SELECT COUNT(*) FROM table_with_fk_2; count --------------------------------------------------------------------- 10 (1 row) TRUNCATE table_with_pk CASCADE; SELECT COUNT(*) FROM table_with_pk; count --------------------------------------------------------------------- 0 (1 row) SELECT COUNT(*) FROM table_with_fk_1; count --------------------------------------------------------------------- 0 (1 row) SELECT COUNT(*) FROM table_with_fk_2; count --------------------------------------------------------------------- 0 (1 row)