A integridade referencial de FOREIGN KEYs no PostgreSQL pode ser desabilitada executando:
ALTER TABLE schema.my_table
DISABLE TRIGGER ALL;
Mas infelizmente o comando também desabilitará todos os outros triggers presentes na tabela.
Tentei localizar o nome da chave estrangeira à pg_constraint
vista, mas usá-lo no seguinte comando retorna um erro:
ALTER TABLE schema.my_table
DISABLE TRIGGER id_fkey;
-- Returns
-- SQL Error [42704]: ERROR: trigger "id_fkey" for table "my_table" does not exist
Como a integridade referencial pode ser desabilitada no PostgreSQL sem desabilitar outros gatilhos?
Primeiro, você terá que descobrir os nomes dos gatilhos do sistema na tabela:
Então você deve desabilitar estes gatilhos:
Observe que desabilitar chaves estrangeiras pode danificar seu banco de dados.