DO $$ DECLARE
TABLE_NAME TEXT;
maxid INT;
BEGIN
FOR TABLE_NAME IN (
SELECT
tb.TABLE_NAME
FROM
information_schema.tables AS tb
INNER JOIN information_schema.COLUMNS AS cols ON tb.TABLE_NAME = cols.TABLE_NAME
WHERE
tb.table_catalog = 'mdm'
AND tb.table_schema = 'public'
AND cols.COLUMN_NAME = 'id'
and tb.table_name in ('sys_log')
)
LOOP
EXECUTE'SELECT MAX(id) +1 FROM ' || TABLE_NAME || ';' INTO maxid;
IF
maxid IS NOT NULL THEN
raise notice '%',
'set sequence ' || TABLE_NAME || '_id_seq restart with ' || maxid;
EXECUTE 'alter sequence ' || TABLE_NAME || '_id_seq restart with ' || maxid || ';';
END IF;
END LOOP;
END $$;
postgresql 重置对应表序列最大值
最新推荐文章于 2026-03-10 05:03:14 发布

2564

被折叠的 条评论
为什么被折叠?



