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']+")")
except:
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
SOLUTION:
Set isolation level on Your connection, on use conn.commit() after each coursor(execute)
conn.set_isolation_level(psycopg2.extensions.ISOLATION_LEVEL_AUTOCOMMIT)
More info:
http://initd.org/psycopg/docs/usage.html











