optimized execute() for multiple rows example : PostgreSQL « Database « Python Tutorial






import psycopg

rows = ({'num': 0, 'text': 'Zero'},
        {'num': 1, 'text': 'Item One'},
        {'num': 2, 'text': 'Item Two'},
        {'num': 3, 'text': 'Three'})

def getdsn(db = None, user = None, passwd = None, host = None):
    if user == None:
        import os, pwd
        user = pwd.getpwuid(os.getuid())[0]
    if db == None:
        db = user
    dsn = 'dbname=%s user=%s' % (db, user)
    if passwd != None:
        dsn += ' password=' + passwd
    if host != None:
        dsn += ' host=' + host
    return dsn

dsn = getdsn()
print "Connecting to %s" % dsn
dbh = psycopg.connect(dsn)
print "Connection successful."

cur = dbh.cursor()
cur.execute("DELETE FROM myTable")

query = "INSERT INTO myTable VALUES (%(num)d, %(text)s)"

for row in rows:
    cur.execute(query, row)
dbh.commit()
dbh.close()








15.4.PostgreSQL
15.4.1.Query data
15.4.2.Basic connection to PostgreSQL with psycopg
15.4.3.Query PostgreSQL database with select statement
15.4.4.Create a table and insert data
15.4.5.executemany() for batch update
15.4.6.optimized execute() for multiple rows example
15.4.7.Fetch all rows after query
15.4.8.Adjust the connect() call below for your database
15.4.9.Fetch row one by one
15.4.10.Fetch row by using cursor
15.4.11.Parameter style
15.4.12.Get cursor
15.4.13.Using types to insert data
15.4.14.Commit example