PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Eliminazione di una tabella in PostgreSQL senza eliminare una sequenza associata

Prova questo:

ALTER SEQUENCE foo_id_seq OWNED BY NONE

quindi dovresti essere in grado di eliminare il tavolo.

Per recuperare il "proprietario" di una sequenza utilizza la seguente query

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)