PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Löschen einer Tabelle in PostgreSQL, ohne eine zugehörige Sequenz zu löschen

Versuchen Sie Folgendes:

ALTER SEQUENCE foo_id_seq OWNED BY NONE

dann sollten Sie in der Lage sein, die Tabelle zu löschen.

Um den "Eigentümer" einer Sequenz abzurufen, verwenden Sie die folgende Abfrage

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)