postgresql 修正全部表格的自增id,为最大

浪淘沙3个月前数据库81
SELECT
  format(
    'SELECT setval(%L, COALESCE((SELECT MAX(%I) FROM %I.%I), 1), true);',
    pg_get_serial_sequence(format('%I.%I', n.nspname, c.relname), a.attname),
    a.attname,
    n.nspname,
    c.relname
  ) AS fix_sql
FROM pg_class c
JOIN pg_namespace n ON n.oid = c.relnamespace
JOIN pg_attribute a ON a.attrelid = c.oid
WHERE c.relkind = 'r'
  AND n.nspname = 'jy'
  AND a.attidentity IN ('a','d') OR a.attnum IN (
      SELECT adnum FROM pg_attrdef WHERE adrelid = c.oid
  )
  AND pg_get_serial_sequence(format('%I.%I', n.nspname, c.relname), a.attname) IS NOT NULL;


相关文章

postgresql 日期函数

select distinct(TO_CHAR(rq, 'YYYY-MM-DD')) from fz_rl order by...

ERROR: duplicate key value violates unique constraint "pub_menu_pkey" DETAIL: Key (id)=(1) already

CREATE SEQUENCE rw_fl_id_seq START 1;重新生成序列:如果是自动递增字段,可能需要重置序列,特别是在删除记录之后。例如,执行以...

postgresql 删除数据,并且序号恢复从1开始

TRUNCATE TABLE tpl_template_class RESTART IDENTITY; ALTER SEQUENCE ...

postgresql 创建id自增,id恢复最大

CREATE SEQUENCE stu_id_seq SELECT setval(   'stu_id_seq', &nbs...

postgersql 多表联合查询

select zph_chrq.qyid,zph_chrq.lxdh as phone,qy.qymc from zph_chrq INNER  join qy on zph_chrq.qy...

SQL Server 执行超大数据量的sql文件

记录:cd C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn打开cmdsqlcmd -S "localhost"...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。