UPDATE
Contents
Syntax
Single-table syntax:
UPDATE [LOW_PRIORITY] [IGNORE] table_reference
[PARTITION (partition_list)]
SET col1={expr1|DEFAULT} [,col2={expr2|DEFAULT}] ...
[WHERE where_condition]
[ORDER BY ...]
[LIMIT row_count]
Multiple-table syntax:
UPDATE [LOW_PRIORITY] [IGNORE] table_references
SET col1={expr1|DEFAULT} [, col2={expr2|DEFAULT}] ...
[WHERE where_condition]
Description
For the single-table syntax, the UPDATE statement updates
columns of existing rows in the named table with new values. The
SET clause indicates which columns to modify and the values
they should be given. Each value can be given as an expression, or the keyword
DEFAULT to set a column explicitly to its default value. The
WHERE clause, if given, specifies the conditions that identify
which rows to update. With no WHERE clause, all rows are
updated. If the ORDER BY clause is specified, the rows are
updated in the order that is specified. The LIMIT clause
places a limit on the number of rows that can be updated.
MariaDB starting with 10.0
The PARTITION clause was introduced in MariaDB 10.0. See Partition Pruning and Selection for details.
For the multiple-table syntax, UPDATE updates rows in each
table named in table_references that satisfy the conditions. In this case,
ORDER BY and LIMIT cannot be used. An UPDATE can also reference tables which are located in different databases; see Identifier Qualifiers for the syntax.
where_condition is an expression that evaluates to true for
each row to be updated.
table_references and where_condition are as
specified as described in SELECT.
You need the UPDATE privilege only for columns referenced in
an UPDATE that are actually updated. You need only the
SELECT privilege for any columns that are read but
not modified. See GRANT.
The UPDATE statement supports the following modifiers:
- If you use the
LOW_PRIORITYkeyword, execution of theUPDATEis delayed until no other clients are reading from the table. This affects only storage engines that use only table-level locking (MyISAM, MEMORY, MERGE). See HIGH_PRIORITY and LOW_PRIORITY clauses for details. - If you use the
IGNOREkeyword, the update statement does not abort even if errors occur during the update. Rows for which duplicate-key conflicts occur are not updated. Rows for which columns are updated to values that would cause data conversion errors are updated to the closest valid values instead.