跳到主要内容
翻译页面

本页面由 AI 辅助从英文翻译而来。如两者存在差异,以英文版本为准。

JSON_INSERT

在 JSON 文档的指定路径处插入新值,不覆盖现有值。

另请参阅:
[SELECT] [JSON_EXTRACT] [JSON_SET] [JSON_REPLACE]


语法​

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

参数​

json_column
要修改的 JSON 列或表达式。

path
要插入新值的 JSON 路径表达式。如果该路径已存在,则不会替换该路径处的原始值。

new_value
要在 JSON 文档的指定路径处插入的值。

返回值​

如果指定路径尚不存在,则返回插入了新值的 JSON 文档;否则原样返回 JSON 文档。

键已存在时的行为
函数已存在时是否覆盖?不存在时是否创建?
json_insert()否是
json_replace()是否
json_set()是是

示例​

向 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"} |
|-------------------------------------------------------------|
*/

如果 'region' 键尚不存在,此查询会向 JSON 文档插入一个名为 'region'、值为 'Europe' 的新键。如果 'region' 已是文档中的键,则原样返回原始文档。