REPLACE replaces the row (as in English). That means it first DELETEs the row before inserting!!! Very dangerous. Use INSERT ... ON DUPLICATE KEY UPDATE ...
Thanks Emery ----- Original Message ----- From: "gerald_clark" <[EMAIL PROTECTED]> To: "Simon Green" <[EMAIL PROTECTED]> Cc: <[EMAIL PROTECTED]> Sent: Friday, October 17, 2003 15:44 Subject: Re: Check for data before inserting > I didn't say it wouldn't. > I was pointing out the danger of the method listed. > Also, a danger with replace is that multiple records might be deleted > for one insert if there are multiple unique keys in the table. > Insert and replace statements will error out with the appropriate status. > > Simon Green wrote: > > >Why would the REPLACE statement not work? > > > >Simon > >(ps mite have missed some thing if so sorry) > > > >-----Original Message----- > >From: gerald_clark [mailto:[EMAIL PROTECTED] > >Sent: 17 October 2003 14:08 > >To: Mike Knox > >Cc: '[EMAIL PROTECTED]' > >Subject: Re: Check for data before inserting > > > > > > > > > >Mike Knox wrote: > > > > > > > >>Traditionally, I'd take the following approach > >> > >>1) Update - assume it's there > >>2) If update fails (0 rows) do an insert > >> > >>Thats assuming that the update case is more prevalent. If the row is > >>unlikely to be there - insert and do the update if you get a duplicate key. > >> > >> > >> > >> > >> > >You have to lock the table first, or another user might insert the > >record between 1 and 2. > > > > > > > > > > > > -- > MySQL General Mailing List > For list archives: http://lists.mysql.com/mysql > To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED] > > > -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]