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

psycopg2を使用して複数の行を挿入する

    executeメソッドを使用するには、挿入するデータをリストに配置します。リストは、psycopg2によって配列に適合されます。次に、配列のネストを解除し、必要に応じて値をキャストします

    import psycopg2
    
    insert = """
        insert into history ("timestamp")
        select value
        from unnest(%s) s(value timestamp)
        returning *
    ;"""
    
    data = [('2014-04-27 14:07:30.000000',), ('2014-04-27 14:07:35.000000',)]
    conn = psycopg2.connect("host=localhost4 port=5432 dbname=cpn")
    cursor = conn.cursor()
    cursor.execute(insert, (data,))
    print cursor.fetchall()
    conn.commit()
    conn.close()
    

    executemanyとのパフォーマンスの違いが重要かどうかはわかりません。しかし、私は上記がきちんとしていると思います。 returning 句は、その名前が示すように、挿入されたタプルを返します。

    ところで、timestamp は予約語であり、列名として使用しないでください。




    1. 衝突することなくランダムな整数を生成する

    2. IDセットを1から更新するにはどうすればよいですか?

    3. Spring Boot Actuator/healthエンドポイントにデータベースまたはファイルシステムの情報が表示されない

    4. データベースからの値の確認と戻り