Python, psycopg2: No errors and no execute query
#!/usr/bin/env python
import psycopg2
import sys
import pprint
DB_server ='localhost'
DB_name ='my_super_db'
DB_username ='user'
DB_pass ='pass'
conn_string = "host="+DB_server+" dbname="+DB_name+" user="+DB_username+" password="+DB_pass
try:
conn = psycopg2.connect(conn_string)
cursor = conn.cursor()
cursor.execute("INSERT INTO city (\"gus_id\",\"pow\",\"gmi\",\"rodz_gmi\",\"rm\",\"mz\",\"nazwa\",\"sym\",\"sympod\",\"stan_na\",\"woj\") VALUES("+data['gus_id']+","+data['pow']+","+data['gmi']+","+data['rodz_gmi']+","+data['rm']+","+data['mz']+",\'"+data['nazwa']+"\',"+data['sym']+","+data['sympod']+","+"to_timestamp(\'"+ data['stan_na'] + "\',\'YYYY MM DD\'),"+data['gus_id']+")")
exceptionType, exceptionValue, exceptionTraceback = sys.exc_info()
sys.exit("Database connection failed!\n ->%s" % (exceptionValue))
In PostgreSQL log You can see:
[root@amd-x6 ~]# tail -f -n 10 /var/lib/pgsql/data/pg_log/postgresql-Sat.log
DZIENNIK: polecenie: SET DATESTYLE TO 'ISO'
DZIENNIK: polecenie: SHOW client_encoding
DZIENNIK: polecenie: SHOW default_transaction_isolation
DZIENNIK: polecenie: BEGIN; SET TRANSACTION ISOLATION LEVEL READ COMMITTED
DZIENNIK: polecenie: INSERT INTO city ("gus_id","pow","gmi","rodz_gmi","rm","mz","nazwa","sym","sympod","stan_na","woj") VALUES(14,28,03,2,01,1,'Sadowo',0566530,0566530,to_timestamp('2012 06 13','YYYY MM DD'),14)
DZIENNIK: polecenie: ROLLBACK
DZIENNIK: polecenie: SET DATESTYLE TO 'ISO'
DZIENNIK: polecenie: SHOW client_encoding
DZIENNIK: polecenie: SHOW default_transaction_isolation
DZIENNIK: nieoczekiwany EOF w połączeniu klienta
Set isolation level on Your connection, on use conn.commit() after each coursor(execute)
conn.set_isolation_level(psycopg2.extensions.ISOLATION_LEVEL_AUTOCOMMIT)
http://initd.org/psycopg/docs/usage.html