Postgresql 表主键自动生成自增序列
SELECT 'CREATE SEQUENCE '||pg_tables.tablename||'_'||pg_attribute.attname||'_seq'||'
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;', '
alter table '||pg_tables.tablename||' alter column '|| pg_attribute.attname || ' set default nextval('''||pg_tables.tablename||'_'||pg_attribute.attname||'_seq'||''');' FROM pg_tables
LEFT JOIN pg_class on pg_tables.tablename=pg_class.relname
LEFT JOIN pg_constraint on pg_constraint.conrelid = pg_class.oid
INNER JOIN pg_attribute ON pg_attribute.attrelid = pg_class.oid
AND pg_attribute.attnum = pg_constraint.conkey [ 1 ]
INNER JOIN pg_type ON pg_type.oid = pg_attribute.atttypid
where schemaname='public' and pg_constraint.contype = 'p' and pg_type.typname like 'int%';

浙公网安备 33010602011771号