Hi, I'm using pyPgSQL for accessing Postgres and do some update and select queries. and getting WARNING: there is already a transaction in progress if I run runUpdate more than once. So, what happens is following:
1. SELECT address FROM address WHERE LOWER(address) = LOWER(%s); -- __existRecord 2. BEGIN;DELETE FROM failed WHERE uquery = %s;COMMIT; -- __delQuery 3. SELECT address FROM address WHERE LOWER(address) = LOWER(%s); -- again __existRecord and here I'm getting the warning. Can anyone explain me please what the problem is? I do select, then delete transaction and then select again which doesn't work Regards, Pet class Bla: def __init__: pass def runUpdate(self, number=5): data = {} data = self.__getUpdateItems(number) for row in data: try: if self.__existRecord(row['q']): self.__delQuery(row['q']) except Exception, e: print "Exception", e def __delQuery(self, name): query = """ BEGIN;DELETE FROM failed WHERE uquery = %s;COMMIT; """ try: self.db.execute(query, name) except Exception, e: print "Exception: ", e return True def __existRecord(self, search): query = """ SELECT address FROM address WHERE LOWER(address) = LOWER (%s); """ try: self.db.execute(query, search) except Exception, e: print "Exception: ", e return self.db.fetchall() def __getUpdateItems(self,number=5): values = [number] query = """ SELECT * FROM failed WHERE id IS NULL ORDER BY up DESC LIMIT %s; """ result = [] try: self.db.execute(query, *values) result = self.db.fetchall() except Exception, e: print "Exception getUpdateItems: ", e return result -- http://mail.python.org/mailman/listinfo/python-list