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
|