zoukankan      html  css  js  c++  java
  • PostgreSQL自动更新序列sequence

    用python 自动更新序列sequence

    from c_pssql import DB_Config
    from c_pssql.connection import Conn
    from c_pssql.data_source import Data_Source
    import re
    
    webdb=DB_Config(database="db", user="postgres", password="password", server="10.10.24.11", port="5432")
    
    webdb_ds=Data_Source(webdb)
    
    web_conn=Conn(webdb,autocommit=True)
    web_conn.open()
    
    s_list=webdb_ds.get_datalist("select * from pg_sequences where schemaname='public'")
    
    for s_row in s_list:
        sequencename=s_row["sequencename"]
        if re.search("_seq$",sequencename):
            table_column=sequencename[:-4]
            pattern = re.compile("_[a-zA-Z0-9]+$")  
            m=pattern.search(table_column)
            column=str(m.group())[1:]
            table=table_column[0:m.span()[0]]
    
            sql_str=f"""select max({column}) from {table}"""
            cur_seq=webdb_ds.get_value(sql_str)
            cur_seq=cur_seq if cur_seq else 0
            last_value=s_row["last_value"] 
            last_value=last_value if last_value else 0
            if cur_seq!=last_value:
                sql_str=f"""SELECT setval('public.{sequencename}', {cur_seq}, true);"""
                print(sql_str)
                web_conn.execute(sql_str)
    
    
    web_conn.close()
  • 相关阅读:
    sql 内链接
    使用python 写一个自动windows桌面壁纸的程序
    在windows使用pyinstall 打包 flask 再使用nsis软件打包成安装包
    超微主板ibm密码
    jenkins邮件模板
    gp集群常用命令
    shell小知识
    Linux配置免密
    文件基础命令
    华为初识命令
  • 原文地址:https://www.cnblogs.com/Evan-fanfan/p/12832625.html
Copyright © 2011-2022 走看看