Re: SQL design pattern for a delta trigger?
Colin Wetherbee <cww@denterprises.org>
From: Colin Wetherbee <cww@denterprises.org>
To: pgsql-general@postgresql.org
Date: 2007-12-10T22:04:31Z
Lists: pgsql-general
Vivek Khera wrote: > On Dec 7, 2007, at 11:42 AM, Colin Wetherbee wrote: > >> You can do this with a conditional. Something like the following >> should work. >> >> IF >> NOT (a query matching your data returns rows) >> THEN >> INSERT (your new data) > > There exists a race condition here unless you've locked your tables. Yes, clearly. In the context of the thread, I was assuming my algorithm would be implemented as an atomic transaction. For what it's worth, the real algorithm would be as follows. I hadn't had enough coffee yet, and I forgot the UPDATE bit. IF (a query matching your old data returns rows) THEN UPDATE with your new data ELSE INSERT your new data Colin