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

浪淘沙7个月前数据库136
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;


相关文章

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

delete from article_author;dbcc checkident('article_author',reseed,0)...

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

TRUNCATE TABLE tpl_template_class RESTART IDENTITY; ALTER SEQUENCE ...

Ubuntu 22.04 安装linux sqlserver

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

清空表内容

delete from article_author;dbcc checkident('article_author',reseed,0)...

navicat 创建带密码的sqlite数据库

navicat 创建带密码的sqlite数据库

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

postgresql 字段中是否包含

在 PostgreSQL 中,如果你有一个字段其值为逗号分隔的字符串如 '1,2,3' 并且你想要查找其中是否包含数字 '2',你可以使用 string_to_arra...

发表评论    

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