Справочник по MySQL : SQL : Обновление записей в таблице(UPDATE)
смотрим также
Материал из Справочник Web-языков
Версия от 15:24, 26 апреля 2011; Evgen (Обсуждение | вклад)
Обновление записи осуществляется командой UPDATE.
Синтаксис команды UPDATE
UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1=expr1 [, col_name2=expr2, ...] [WHERE where_definition] [LIMIT #]
- tbl_name
- - Задает имя таблицы, в которой будут обновляться записи. На момент запуска команды UPDATE таблица с таким именем должна существовать в базе данных.
- LOW_PRIORITY
- - Если указан этот параметр, то обновление записи будет отложена до тех пор, пока другие сценарии не закончат чтение из этой таблицы.
- IGNORE
- - Если некоторые поля таблицы имеют ключи PRIMARY или UNIQUE, и производится обновление строки, в которой эти поля имеют дублирующее значение, то действие команды аварийно завершается и выдается ошибка №1062 ("Duplicate entry 'val' for key N"). Если в команде INSERT указано ключевое слово IGNORE, то обновление записей не прерывается, а строки с дублирующими значениями просто не изменяются.
- SET
- - После этого ключевого слова должен идти список полей таблицы, которые будут обновлены и непосредственно сами новые значения полей в виде:
имя поля='значение'
- Следующий пример производит обновление поля country у ВСЕХ записей в таблице users:
UPDATE `users` SET `country`='Russia'
- А здесь обновление полей country и city у ВСЕХ записей таблицы users:
UPDATE `users` SET `country`='Russia', `city`='Ryazan'
- Если новое значение, присваиваемое командой UPDATE соответствует старому, то обновление этого поля не происходит.
- Для задания нового значения можно использовать выражения.
- Следующий пример увеличит возраст всех пользователей, записанных в таблице users на один год:
UPDATE `users` SET `age`=`age`+1
- WHERE
- - Задает условие отбора записей, подлежащих изменению.
- Следующий пример изменит название города в записях пользователей с "Ryazan" на "Рязань":
UPDATE `users` SET `city`='Рязань' WHERE `city`='Ryazan'
- LIMIT
- - Задает максимальное количество строк, которые могут быть изменены.
UPDATE `users` SET `age`=`age`+1 LIMIT 5