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]

Reply via email to