Re: Checking for entry in table?
Rudy Lippan <[email protected]>
| Newsgroups | gmane.comp.db.mysql.perl |
|---|---|
| Message-ID | <[email protected]> |
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/[email protected]