sql >> データベース >  >> RDS >> PostgreSQL

Python / psycopg2を使用して大きなPostgreSQLテーブルの列を効率的に更新するにはどうすればよいですか?

    unnest 一度にすべてを作成するためのデータ:

    def create_random(i):
        return random() * i
    
    curs.execute("select gid, number from t;")
    data = curs.fetchall()
    
    results = []
    for i in data:
        results.append((create_random(i[1]), i[0]))
    
    curs.execute("""
        update t
        set
            rnd = s.rnd,
            result = number * s.rnd
        from unnest(%s) s(rnd numeric, gid integer)
        where t.gid = s.gid;
    """, (results,))
    
    con.commit()
    

    表t:

    create table t (
        gid integer,
        number integer,
        rnd float,
        result float
    );
    



    1. 連結するSumに相当する文字列

    2. SQL支払い配布

    3. ワイルドカードとして扱われずにLIKEでパーセント(%)を使用するにはどうすればよいですか?

    4. Laravel 5でmysqlからXMLにデータを保存するにはどうすればよいですか?