PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Excluindo uma tabela no PostgreSQL sem excluir uma sequência associada


Tente isto:
ALTER SEQUENCE foo_id_seq OWNED BY NONE

então você deve ser capaz de largar a mesa.

Para recuperar o "proprietário" de uma sequência, use a seguinte consulta
SELECT s.relname as sequence_name,  
       n.nspname as sequence_schema,  
       t.relname as related_table, 
       a.attname as related_column 
  FROM pg_class s, pg_depend d, pg_class t, pg_attribute a, pg_namespace n 
  WHERE s.relkind     = 'S' 
    AND n.oid         = s.relnamespace 
    AND d.objid       = s.oid 
    AND d.refobjid    = t.oid 
    AND (d.refobjid, d.refobjsubid) = (a.attrelid, a.attnum)