sql >> Base de Datos >  >> RDS >> PostgreSQL

Eliminar una tabla en PostgreSQL sin eliminar una secuencia asociada

Prueba esto:

ALTER SEQUENCE foo_id_seq OWNED BY NONE

entonces deberías poder dejar caer la mesa.

Para recuperar el "propietario" de una secuencia, utilice la siguiente 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)