ЗНАЧЕНИЯ / ЗНАЧЕНИЕ
Синтаксис
VALUE(col_name)
VALUES(col_name)
Описание
В операторе INSERT ... ON DUPLICATE KEY UPDATE вы можете использовать функцию VALUES(col_name) в оператор UPDATE, чтобы обратиться к значениям столбцов из части INSERT оператора. Другими словами, VALUES(col_name) в операторе UPDATE ссылается на значение col_name, которое было бы вставлено, если бы не произошло конфликта по дубликату ключа. Эта функция особенно полезна при вставке нескольких строк.
Функция VALUES() имеет смысл только в операторах INSERT ... ON DUPLICATE KEY UPDATE и возвращает NULL в противном случае.
В MariaDB 10.3.3 эта функция была переименована в VALUE(), так как она несовместима с синтаксисом стандартных конструкторов табличных значений, реализованных в MariaDB 10.3.3.
Функция VALUES() всё ещё может использоваться даже в MariaDB 10.3.3, но только в операторах INSERT ... ON DUPLICATE KEY UPDATE; в противном случае это синтаксическая ошибка.
Примеры
INSERT INTO t (a,b,c) VALUES (1,2,3),(4,5,6)
ON DUPLICATE KEY UPDATE c=VALUE(a)+VALUE(b);
INSERT INTO t (a,b,c) VALUES (1,2,3),(4,5,6)
ON DUPLICATE KEY UPDATE c=VALUES(a)+VALUES(b);
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/values-value/