Name
REPLACE
Synopsis
REPLACE [LOW_PRIORITY|DELAYED] [INTO]table
[(column
,...)] VALUES ({expression
|DEFAULT},...)[, (...)] REPLACE [LOW_PRIORITY|DELAYED] [INTO]table
SETcolumn
={expression
|DEFAULT}[, ...] REPLACE [LOW_PRIORITY|DELAYED] [INTO]table
[(column
,...)] SELECT...
Use this statement to insert new rows of data and to replace
existing rows where the PRIMARY KEY
or
UNIQUE
index key is the same as the new record
being inserted. This statement requires INSERT
and
DELETE
privileges because it is potentially a
combination of both.
The LOW_PRIORITY
keyword instructs the server to wait until there are no queries
on the table named, including reads, and then to lock the table for
exclusive use by the thread so that data may be inserted and replaced.
When the statement is finished, the lock is released, automatically.
For busy servers, a client may be waiting for quite a while. The
DELAYED
keyword will free the client by storing the statement in a
buffer for processing when the table is not busy. The client won’t be
given notice of the success of the statement, just that it’s buffered.
If the server crashes before the changes to the data are processed,
the client will not be informed and the buffer contents will be lost.
The INTO
keyword is optional and is a matter of style preference and
compatibility with other database engines.
The REPLACE
statement has three basic
formats. The first contains the values for each row in parentheses
after the VALUES
keyword. If the order and number ...
Get MySQL in a Nutshell, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.