UPDATE OR INSERT
Добавление новой или обновление существующей записи в таблице.
DSQL, PSQL
UPDATE OR INSERT INTO target [(<column_list>)] VALUES (<value_list>) [MATCHING (<column_list>)] [RETURNING <returning_list> [INTO <variables>]] <column_list> ::= col_name [, col_name ...] <value_list> ::= <ins_value> [, <ins_value> ...] <ins_value> ::= <value_expression> | DEFAULT <returning_list> ::= * | <output_column> [, <output_column] <output_column> ::= target.* | NEW.* | OLD.* | <return_expression> [COLLATE collation] [[AS] alias] <return_expression> ::= <value_expression> | [target.]col_name | NEW.col_name | OLD.col_name <value_expression> ::= <literal> | <context-variable> | <other-single-value-expr> <variables> ::= [:]varname [, [:]varname ...]
Параметр | Описание |
---|---|
target |
Имя таблицы или представления, запись в которой будет обновлена или произойдет вставка новой записи. |
col_name |
Столбец таблицы или представления. |
ins_value |
Выражение, значение которого используется для вставки или обновления таблицы. |
literal |
Литерал. |
context-variable |
Контекстная переменная. |
other-single-value-expr |
Любое другое выражение, возвращающее единственное значение типа данных Firebird или |
return_expression |
Выражение, возвращаемое в предложении |
alias |
Псевдоним для выражения, возвращаемого в предложении |
varname |
Имя PSQL переменной. |
Оператор UPDATE OR INSERT
вставляет или обновляет одну, или более существующих записей.Производимое действие зависит от значений столбцов в предложении MATCHING
(или, если оно не указано, то от значений столбцов первичного ключа — PK). Если найдены записи, совпадающие с указанными значениями, то они обновляются.Если нет, то вставляется новая запись.
Совпадением считается полное совпадение значений столбцов MATCHING
или PK.Совпадение проверяется с использованием IS NOT DISTINCT
, поэтому NULL
совпадает с NULL
.
Note
|
Ограничения
|