Checking for entry in table? 2005-04-01 - By Rudy Lippan
Back On Tue, 29 Mar 2005, Garry Williams wrote:
> > Of course some DBs will abort a transaction in the event of a failed insert > > because of the way the SQL spec is written. > > I must misunderstand your point. (Which, if you know me is not > surprising. :-) That is exactly what I am advocating. The problem of > insert if not there, retrieve otherwise is a common one. Just insert > and catch the error and make sure it's because of duplicate key. The > MySQL database defines this error as 1062. Catch that error and > retrieve the existing record. If no error, then the insert that you > wanted is done. >
For mysql, yes. But PostgreSQL, for example, would abort the entire transaction on dup key error. So, with pg after a failed insert, the only thing that you are allowed to do is rollback() anything else will result in a Transaction Aborted error ( including commit() ).
-r
-- MySQL Perl Mailing List For list archives: http://lists.mysql.com/perl To unsubscribe: http://lists.mysql.com/perl?unsub=mysql@(protected)
|
|