美文网首页
SQL批量更新sequence

SQL批量更新sequence

作者: LatitudeMaster | 来源:发表于2019-04-15 19:33 被阅读0次
DO $$ 
DECLARE 
    r record; 
    start_value integer := 0; 
BEGIN 
FOR r IN SELECT tablename||'_id_seq' AS sequence_name, tablename FROM pg_tables WHERE schemaname = 'public' 
LOOP 
    EXECUTE 'SELECT max(id)+1 AS max_value FROM ' || r.tablename INTO start_value; 
    IF start_value IS NULL THEN start_value:= 1; 
    END IF; 
    RAISE NOTICE 'start_value % %', r.tablename,start_value; 
    EXECUTE 'ALTER SEQUENCE '|| r.sequence_name ||' restart WITH ' || start_value; 
END LOOP; 
END$$;

相关文章

网友评论

      本文标题:SQL批量更新sequence

      本文链接:https://www.haomeiwen.com/subject/rfvpwqtx.html