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
|
Ограничения
|