Acessar para criar postagens e tópicos.
Como apagar e re-criar Foreing key no Postgres
247 Posts
Clientes Central de ComprasClientes Fila de TrabalhoClientes Gestão de ContratosClientes Mídia ShowClientes Não ConformidadeColaboradoresDesenvolvedores
#1 · 6 de setembro de 2016, 09:11
Citação de Kindrazki em 6 de setembro de 2016, 09:11Como apagar e re-criar Foreing key no Postgres
Apagar Foreing Key
SELECT 'ALTER TABLE "'||nspname||'"."'||relname||'" DROP CONSTRAINT "'||conname||'"~'
FROM pg_constraint
INNER JOIN pg_class ON conrelid=pg_class.oid
INNER JOIN pg_namespace ON pg_namespace.oid=pg_class.relnamespace
ORDER BY CASE WHEN contype='f' THEN 0 ELSE 1 END,contype,nspname,relname,connameSELECT 'ALTER TABLE '||nspname||'.'||relname||' ADD CONSTRAINT '||conname||' '||pg_get_constraintdef(pg_constraint.oid)||chr(59)FROM pg_constraintINNER JOIN pg_class ON conrelid=pg_class.oidINNER JOIN pg_namespace ON pg_namespace.oid=pg_class.relnamespaceWherenot pg_get_constraintdef(pg_constraint.oid) like '%PRIMARY%'ORDER BY CASE WHEN contype='f' THEN 0 ELSE 1 END DESC,contype DESC,nspname DESC,relname DESC,conname DESC
Como apagar e re-criar Foreing key no Postgres
Apagar Foreing Key
SELECT 'ALTER TABLE "'||nspname||'"."'||relname||'" DROP CONSTRAINT "'||conname||'"~'
FROM pg_constraint
INNER JOIN pg_class ON conrelid=pg_class.oid
INNER JOIN pg_namespace ON pg_namespace.oid=pg_class.relnamespace
ORDER BY CASE WHEN contype='f' THEN 0 ELSE 1 END,contype,nspname,relname,conname
SELECT 'ALTER TABLE '||nspname||'.'||relname||' ADD CONSTRAINT '||conname||' '||
pg_get_constraintdef(pg_constraint.oid)||chr(59)
FROM pg_constraint
INNER JOIN pg_class ON conrelid=pg_class.oid
INNER JOIN pg_namespace ON pg_namespace.oid=pg_class.relnamespace
Where
not pg_get_constraintdef(pg_constraint.oid) like '%PRIMARY%'
ORDER BY CASE WHEN contype='f' THEN 0 ELSE 1 END DESC,contype DESC,nspname DESC,relname DESC,conname DESC
Clique para não gostei.0Clique para gostei.0
Last edited on 17 de abril de 2018, 16:40 by Kindrazki