UPDATE OR INSERT
Ajout d’une nouvelle entrée ou mise à jour d’une entrée existante dans une table.
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 ...]
Paramètre | Description |
---|---|
target |
Nom de la table ou de la vue dont l’entrée sera mise à jour ou une nouvelle entrée sera insérée. |
col_name |
La colonne d’une table ou d’une vue. |
ins_value |
Une expression dont la valeur est utilisée pour insérer ou mettre à jour une table. |
literal |
Litéral. |
context-variable |
La variable de contexte. |
other-single-value-expr |
Toute autre expression qui renvoie une seule valeur du type de données Firebird ou |
return_expression |
Expression renvoyée dans une clause |
alias |
Alias pour l’expression retournée dans la clause |
varname |
Le nom de la variable PSQL. |
L’instruction UPDATE OR INSERT
insère ou met à jour un ou plusieurs enregistrements existants. L’action effectuée dépend des valeurs des colonnes dans l’instruction MATCHING
(ou, si elle n’est pas spécifiée, des valeurs des colonnes de la clé primaire — PK). Si des enregistrements correspondant aux valeurs spécifiées sont trouvés, ils sont mis à jour. Sinon, un nouvel enregistrement est inséré.
Une correspondance est définie comme une correspondance complète des valeurs des colonnes MATCHING
ou PK. La correspondance est vérifiée en utilisant IS NOT DISTINCT
, ainsi NULL
est mis en correspondance avec NULL
.
Note
|
Limites
|