Dovresti eliminare la foreign key.
Prova usando qualcosa di simile (non provata) :
ALTER TABLE libro DROP CONSTRAINT fk_autore
Ovvio che poi sei costretto a ricrearla se vuoi ripristinare il vincolo:
ALTER TABLE libro ADD CONSTRAINT fk_autore FOREIGN KEY (id) REFERENCES prestito (id_libro) MATCH SIMPLE;
Non è una cosa molto bella, eliminare e ricreare una foreign_key di questo tipo.
Al posto tuo, eliminerei tale vincolo, o se proprio vuoi un comportamento simile, può provare ad usare i trigger.
Con postgres vi sono comandi sql che permettono di disabilitare ed abilitare un trigger a piacimento.
link:
http://www.postgresql.org/docs/8.1/s...ltertable.html