UPDATE [LOW_PRIORITY] [IGNORE] tbl_name
SET col_name1=expr1 [, col_name2=expr2 ...]
[WHERE where_definition]
[ORDER BY ...]
[LIMIT rows]
или
UPDATE [LOW_PRIORITY] [IGNORE] tbl_name [, tbl_name ...]
SET col_name1=expr1 [, col_name2=expr2 ...]
[WHERE where_definition]
Оператор UPDATE обновляет
столбцы в соответствии с их новыми
значениями в строках существующей
таблицы. В выражении SET
указывается, какие именно столбцы
следует модифицировать и какие
величины должны быть в них
установлены. В выражении
WHERE, если оно
присутствует, задается, какие
строки подлежат обновлению. В
остальных случаях обновляются все
строки. Если задано выражение
ORDER BY, то строки будут
обновляться в указанном в нем
порядке.
Если указывается ключевое слово
LOW_PRIORITY, то выполнение
данной команды UPDATE
задерживается до тех пор, пока
другие клиенты не завершат чтение
этой таблицы.
Если указывается ключевое слово
IGNORE, то команда
обновления не будет прервана, даже
если при обновлении возникнет
ошибка дублирования ключей.
Строки, из-за которых возникают
конфликтные ситуации, обновлены не
будут.
Если доступ к столбцу из
указанного выражения
осуществляется по аргументу
tbl_name, то команда
UPDATE использует для этого
столбца его текущее значение.
Например, следующая команда
устанавливает столбец age
в значение, на единицу большее его
текущей величины:
mysql> UPDATE persondata SET age=age+1;
Значения команда UPDATE
присваивает слева направо.
Например, следующая команда
удваивает значение в столбце
age, затем инкрементирует
его:
mysql> UPDATE persondata SET age=age*2, age=age+1;
Если столбец устанавливается в его текущее значение, то MySQL замечает это и не обновляет его.
Команда UPDATE возвращает
количество фактически измененных
строк. В версии MySQL 3.22 и более
поздних функция C API
mysql_info() возвращает
количество строк, которые были
найдены и обновлены, и количество
предупреждений, имевших место при
выполнении UPDATE.
В версии MySQL 3.23 можно использовать
LIMIT #, чтобы убедиться,
что было изменено только заданное
количество строк.
Начиная с версии MySQL 4.0.4 вы также
можете выполнять UPDATE,
охватывающий множество таблиц:
UPDATE items,month SET items.price=month.price WHERE items.id=month.id;
Обратите внимание: вы не можете
использовать ORDER BY или
LIMIT для многотабличных
обновлений.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.
© 1995-2005 MySQL AB. All rights reserved.
