Thread: NOTICE: (transaction aborted): queries ignored until END
Hi, I'm use Postgres-6.5.1 on Linux. My database contains two tables and two indices. I wrote simple program on C that - begins transaction: BEGIN WORK - inserts many (10-500) rows in the first table - commits the transaction: COMMIT - begins transaction: BEGIN WORK - inserts many (1-50) rows in the second table - commits the transaction: COMMIT During execution of this program I receive very often the following message: NOTICE: (transaction aborted): queries ignored until END that repeated many times. What means this message? And why this happens? Best regards, Alex
Alex Guryanow wrote: > > Hi, > > I'm use Postgres-6.5.1 on Linux. My database contains two tables and two > indices. I wrote simple program on C that > - begins transaction: BEGIN WORK > - inserts many (10-500) rows in the first table > - commits the transaction: COMMIT > - begins transaction: BEGIN WORK > - inserts many (1-50) rows in the second table > - commits the transaction: COMMIT > > During execution of this program I receive very often the following > message: > > NOTICE: (transaction aborted): queries ignored until > END > > that repeated many times. > > What means this message? And why this happens? > > Best regards, > Alex That message appears when an error has occurred in a transaction. It means that no other SQL statements will be processed until the transaction has ended and a new one has begun. For example: CREATE TABLE example(key text); => begin; BEGIN => insert into example values ('foo'); INSERT 181193 1 => insert into example values ('bar', 20); ERROR: INSERT has more expressions than target columns => insert into example values ('bar'); NOTICE: (transaction aborted): queries ignored until END *ABORT STATE* => commit; END => select * from example; key --- (0 rows) It sounds as if some of your INSERT statements are not being properly executed, often due to embedded single quotes in text strings, lack of NULL values for missing datetime values, or some other such syntax error. You should be able to use PQresultStatus() and PQerrorMessage() to determine precisely the error which is causing the transaction to abort. Hope that helps, Mike Mascari
Re: [SQL] NOTICE: (transaction aborted): queries ignored until END
From
neko@kredit.sth.szif.hu
Date:
On Sun, 19 Dec 1999, Alex Guryanow wrote: > NOTICE: (transaction aborted): queries ignored until > What means this message? And why this happens? If an error occured inside a transaction, the whole transaction will be droped. If the first query fails it is the simplest way to do nothing with subsequent querys. (and the first action of course will be rollbacked) If you want know what happend, you need look for the error message, before the first "transaction aborted" notice. -- nek;(
Hello, I need to access the database through PHP on an Apache server. The connections are done with the user "nobody", which I created in PostgreSQL (version 6.5.3) It works fine for select, however I'd need to create temporary tables, and execute insert / update on them with that user. The documentation about the grant command seems to apply only to existing objects. Any idea ? Thanks, Alain ************
Thanks Mike, I had the same problem and couldn't figure it out. I forgot that since the last time I ran this type of routine I had added some quotes in. I forgot to add the routines to handle the single quotes in the new program. Tim in Columbia MD On Sat, 18 Dec 1999, Mike Mascari wrote: > Alex Guryanow wrote: > > > > NOTICE: (transaction aborted): queries ignored until > > > > What means this message? And why this happens? > > > > Best regards, > > Alex > > That message appears when an error has occurred in a > transaction. It means that no other SQL statements will be > processed until the transaction has ended and a new one has > begun. For example: > > It sounds as if some of your INSERT statements are not being > properly executed, often due to embedded single quotes in > text strings, lack of NULL values for missing datetime > values, or some other such syntax error. You should be able > to use PQresultStatus() and PQerrorMessage() to determine > precisely the error which is causing the transaction to > abort. > > Hope that helps, > > Mike Mascari >
Hello, I need to access the database through PHP on an Apache server. The connections are done with the user "nobody", which I created in PostgreSQL (version 6.5.3) It works fine for select, however I'd need to create temporary tables, and execute insert / update on them with that user. The documentation about the grant command seems to apply only to existing objects. Any idea ? Thanks, Alain ************