Минув деякий час з того часу, як було поставлено це питання, надія може допомогти. Оскільки ви не можете змінити або змінити структуру db, ви можете це зробити. відповідно до postgresql docs .
TRUNCATE - спорожнення таблиці або набору таблиць.
TRUNCATE [ TABLE ] [ ONLY ] name [ * ] [, ... ]
[ RESTART IDENTITY | CONTINUE IDENTITY ] [ CASCADE | RESTRICT ]
Опис
TRUNCATE швидко видаляє всі рядки з набору таблиць. Це має такий самий ефект, як некваліфіковане ВИДАЛЕННЯ для кожної таблиці, але оскільки воно насправді не сканує таблиці, це швидше. Крім того, він відновлює дисковий простір негайно, а не вимагає подальшої операції VACUUM. Це найкорисніше на великих столах.
Зрізати таблицю othertable та каскадувати до будь-яких таблиць, які посилаються на othertable через обмеження зовнішнього ключа:
TRUNCATE othertable CASCADE;
Те саме, а також скинути будь-які пов'язані генератори послідовностей:
TRUNCATE bigtable, fattable RESTART IDENTITY;
Зрізання та скидання будь-яких пов'язаних генераторів послідовностей:
TRUNCATE revinfo RESTART IDENTITY CASCADE ;
creating foreign keys
миadd parent then child
. Тож при видаленні wedelete child and then parent
;)