PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Supprimer une table dans PostgreSQL sans supprimer une séquence associée

Essayez ceci :

ALTER SEQUENCE foo_id_seq OWNED BY NONE

alors vous devriez pouvoir supprimer la table.

Pour récupérer le "propriétaire" d'une séquence utilisez la requête suivante

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)