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

浪淘沙9个月前数据库175
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 查询每个数据库的OID

SELECT datname AS database_name,        oid ...

Ubuntu 22.04 安装linux sqlserver

1、下载公钥,从 ASCII 转换为 GPG 格式,并将其写入所需的位置:curl -fsSL https://packages.microsoft.com/keys/micros...

navicat 创建带密码的sqlite数据库

navicat 创建带密码的sqlite数据库

第一步:第二步创建一个具有密码的sqlite数据库使用sqlitestudio打开的选项...

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

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

PostgreSQL数据库允许其他IP连接到数据库(Windows & Linux)

https://blog.csdn.net/h1773655323/article/details/142454517...

PostgreSQL 里,如果 id in (13,14) 查出来是多行,想把它们合并成一行

SELECT string_agg(name, ',') AS names FROM article_class WHERE&nb...

发表评论    

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