6.4.8 Синтаксис оператора REPLACE
6.4.8 Синтаксис оператора REPLACE
REPLACE [LOW_PRIORITY | DELAYED]
[INTO] tbl_name [(col_name,...)]
VALUES (expression,...),(...),...
или REPLACE [LOW_PRIORITY | DELAYED]
[INTO] tbl_name [(col_name,...)]
SELECT ...
или REPLACE [LOW_PRIORITY | DELAYED]
[INTO] tbl_name
SET col_name=expression, col_name=expression,...
Оператор REPLACE работает точно так же, как INSERT, за исключением того,
что если старая запись в данной таблице имеет то же значение индекса
UNIQUE или PRIMARY KEY, что и новая, то старая запись перед занесением
новой будет удалена. See section 6.4.3 Синтаксис оператора INSERT.
Другими словами, команда REPLACE не предоставляет доступа к замещаемой
записи. В некоторых старых версиях MySQL такой доступ иногда оказывался
возможным, но это был дефект, который уже исправлен.
При использовании команды REPLACE функция mysql_affected_rows() вернет
значение, равное 2, если старая строка была заменена новой. Объясняется
это тем, что сначала в таблицу вставляется одна строка, а затем удаляется
вторая - дубликат.
Это позволяет легко определять, какое действие произвела команда REPLACE -
добавление или замещение строки. Достаточно просто проверить, какое число
вернула функция mysql_affected_rows() - 1 (строка добавлена) или 2
(замещена).
Следует учитывать, что, если не используются индексы UNIQUE или PRIMARY
KEY, то применение команды REPLACE не имеет смысла, так как она работает
просто как INSERT.
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий
|