6.4. Обробка даних: SELECT, INSERT, UPDATE, DELETE 6.4.5. Синтаксис оператора UPDATE
Оператор UPDATE оновлює стовпці відповідно до їх нових значень у рядках існуючої таблиці. У виразі SET вказується, які саме стовпці слід модифікувати і які величини мають бути встановлені. У виразі WHERE , якщо воно є, задається, які рядки підлягають оновленню. В інших випадках оновлюються усі рядки. Якщо задано вираз ORDER BY , то рядки оновлюватимуться у вказаному порядку.
Якщо вказується ключове слово LOW_PRIORITY , виконання цієї команди UPDATE затримується до того часу, поки інші клієнти не завершать читання цієї таблиці.
Якщо вказується ключове слово IGNORE , команда оновлення не буде перервана, навіть якщо при оновленні виникне помилка дублювання ключів. Рядки, через які виникають конфліктні ситуації, оновлені не будуть.
Якщо доступ до стовпця із зазначеного виразу здійснюється за аргументом tbl_name , команда UPDATE використовує для цього стовпця його поточне значення. Наприклад, наступна команда встановлює стовпець age у значення, на одиницю більшу за його поточну величину:
Значення команда UPDATE надає зліва направо. Наприклад, наступна команда подвоює значення в стовпці age потім інкрементує його:
Якщо стовпець встановлюється в його поточне значення, MySQL помічає це і не оновлює його.
Команда UPDATE повертає кількість фактично змінених рядків. У версії MySQL 3.22 і пізніших функція C API mysql_info() повертає кількість рядків, які були знайдені та оновлені, та кількість попереджень, що мали місце під час виконання UPDATE .
У версії MySQL 3.23 можна використовувати LIMIT # , щоб переконатися, що змінено лише задану кількість рядків.
Починаючи з версії MySQL 4.0.4 витакож можете виконувати UPDATE , що охоплює безліч таблиць:
Зверніть увагу: ви не можете використовувати ORDER BY або LIMIT для багатотабличних оновлень.