Aller au contenu principal
Page traduite

Cette page a été traduite de l'anglais avec l'aide de l'IA. En cas de divergence, la version anglaise fait référence.

JSON_INSERT

Insère de nouvelles valeurs dans un document JSON aux chemins indiqués, sans écraser les valeurs existantes.

Voir aussi :
[SELECT] [JSON_EXTRACT] [JSON_SET] [JSON_REPLACE]


Syntaxe​

SELECT JSON_INSERT(json_column, path, new_value) FROM <multipartIdentifier>;

Arguments​

json_column
La colonne ou l'expression JSON à modifier.

path
L'expression de chemin JSON où la nouvelle valeur doit être insérée. Si le chemin existe déjà, la valeur d'origine à ce chemin n'est pas remplacée.

new_value
La valeur à insérer au chemin indiqué dans le document JSON.

Valeur(s) renvoyée(s)​

Renvoie le document JSON avec la nouvelle valeur insérée si le chemin indiqué n'existe pas déjà ; sinon, le document JSON est renvoyé inchangé.

Comportement si une clé existe
FonctionÉcraser si la clé existe déjà ?Créer si la clé n'existe pas ?
json_insert()NonOui
json_replace()OuiNon
json_set()OuiOui

Exemples​

Insérer une nouvelle paire clé-valeur dans un objet JSON​

-- Example: Insert a new 'region' key with the value 'Europe' into a JSON object
SELECT JSON_INSERT(json_data, '$.region', 'Europe') as updated_object;

/* expected output...
|-------------------------------------------------------------|
| updated_json |
|-------------------------------------------------------------|
| {"name":"ResourceOne", "type":"Storage", "region":"Europe"} |
|-------------------------------------------------------------|
*/

Cette requête insère une nouvelle clé nommée 'region' avec la valeur 'Europe' dans le document JSON si la clé 'region' n'existe pas déjà. Si 'region' est déjà une clé du document, le document d'origine est renvoyé sans modification.