Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get table and column "owning" a sequence

I can run the following line:

ALTER SEQUENCE seqName OWNED BY table.id;

How can I get the 'owner' set by OWNED BY for a sequence (in this case: table.id)?

like image 223
johnlemon Avatar asked Aug 04 '11 11:08

johnlemon


People also ask

What is Log_cnt?

log_cnt shows how many fetches remain before a new WAL record has to be written. After the first call to nextval after a checkpoint, log_cnt will be 32. It will decrease with every call to nextval , and once it reaches 0, it is set to 32 again, and a WAL record is written.

What is Nextval in Postgres?

Function. Description. nextval ( regclass ) → bigint. Advances the sequence object to its next value and returns that value. This is done atomically: even if multiple sessions execute nextval concurrently, each will safely receive a distinct sequence value.


1 Answers

You may use following query:

select s.relname as seq, n.nspname as sch, t.relname as tab, a.attname as col
from pg_class s
  join pg_depend d on d.objid=s.oid and d.classid='pg_class'::regclass and d.refclassid='pg_class'::regclass
  join pg_class t on t.oid=d.refobjid
  join pg_namespace n on n.oid=t.relnamespace
  join pg_attribute a on a.attrelid=t.oid and a.attnum=d.refobjsubid
where s.relkind='S' and d.deptype='a'

It returns all sequences with owner information. Just filter them in WHERE clause and that's it.

like image 51
alexius Avatar answered Sep 23 '22 01:09

alexius