Cette rubrique décrit les fonctions JSON prises en charge par les clusters AnalyticDB for MySQL.
JSON_ARRAY_CONTAINS : Vérifie si un tableau JSON contient la
valuespécifiée.JSON_ARRAY_LENGTH : Renvoie la longueur d'un tableau JSON.
JSON_CONTAINS (versions 3.1.5.0 et ultérieures) : Vérifie si le chemin spécifié contient la valeur
candidate. Si aucun chemin n'est spécifié, cette fonction vérifie si la cible contient la valeurcandidate.JSON_CONTAINS_PATH (versions 3.1.5.0 et ultérieures) : Vérifie si un document JSON contient tout ou partie des chemins spécifiés.
JSON_EXTRACT : Extrait des données d'un document JSON au
json_pathspécifié.JSON_KEYS : Si
json_pathest spécifié, cette fonction renvoie toutes les clés du chemin indiqué dans un document JSON. Sinon, elle renvoie toutes les clés du chemin racine (json_path='$').JSON_OVERLAPS (versions 3.1.10.6 et ultérieures) : Vérifie si un document JSON contient l'un des éléments spécifiés, tels que
candidate1,candidate2oucandidate3.JSON_REMOVE (versions 3.1.10.0 et ultérieures) : Supprime l'élément situé au
json_pathspécifié d'un documentjsonet renvoie la chaîne modifiée. Vous pouvez spécifier plusieurs éléments à supprimer à l'aide dearray[json_path,json_path,...].JSON_SIZE : Renvoie la taille de l'objet ou du tableau JSON situé au
json_pathspécifié.JSON_SET (versions 3.2.2.8 et ultérieures) : Insère ou met à jour des données dans un document
jsonaujson_pathspécifié, puis renvoie le documentjsonmis à jour.JSON_UNQUOTE (versions 3.2.2.11 et ultérieures) : Supprime les guillemets doubles de
json_value, interprète les caractères d'échappement spécifiques dansjson_value, et renvoie la valeur résultante.
JSON_ARRAY_CONTAINS
json_array_contains(json, value)
Description : Vérifie si un tableau JSON contient la
valuespécifiée.Type de valeur d'entrée :
valuepeut être de type numérique, chaîne ou BOOLEAN.Type de valeur de retour : BOOLEAN.
-
Exemple :
-
Vérifiez si le tableau JSON
[1, 2, 3]contient l'élément2. Exécutez l'instruction suivante :SELECT json_array_contains('[1, 2, 3]', 2);Résultat :
+-------------------------------------+ | json_array_contains('[1, 2, 3]', 2) | +-------------------------------------+ | 1 | +-------------------------------------+
-
JSON_ARRAY_LENGTH
json_array_length(json)
Description : Renvoie la longueur d'un tableau JSON.
Type de valeur d'entrée : Chaîne ou JSON.
Type de valeur de retour : BIGINT.
-
Exemple :
-
Obtenez la longueur du tableau JSON
[1, 2, 3]. Exécutez l'instruction suivante :SELECT json_array_length('[1, 2, 3]');Résultat :
+--------------------------------+ | json_array_length('[1, 2, 3]') | +--------------------------------+ | 3 | +--------------------------------+
-
JSON_CONTAINS
La fonction JSON_CONTAINS vérifie si un document JSON spécifié contient une valeur donnée. L'utilisation d'un index de tableau JSON dans vos requêtes évite les analyses complètes de table ou l'analyse syntaxique de l'intégralité du document JSON, améliorant ainsi l'efficacité des requêtes.
Sans index JSON
Cette syntaxe est prise en charge uniquement sur les clusters dont la version du noyau est 3.1.5.0 ou ultérieure.
Pour consulter et mettre à jour la version mineure, accédez à la section Configuration Information de la page Cluster Information dans la console AnalyticDB for MySQL.
json_contains(target, candidate[, json_path])
-
Description :
Si
json_pathest spécifié, cette fonction vérifie si le chemin indiqué contient la valeurcandidate. Elle renvoie1si la valeur est contenue, et0dans le cas contraire.Si
json_pathn'est pas spécifié, cette fonction vérifie si la cible contient la valeurcandidate. Elle renvoie1si la valeur est contenue, et0dans le cas contraire.
Règles applicables :
Si
targetetcandidatesont tous deux des types primitifs (NUMBER, BOOLEAN, STRING ou NULL), la cible contient le candidat s'ils sont égaux.Si
targetetcandidatesont tous deux des tableaux JSON, la cible contient le candidat si tous les éléments decandidatefigurent dans n'importe quel élément detarget.Si
targetest un tableau et quecandidaten'en est pas un, la cible contient le candidat sicandidatefigure dans n'importe quel élément detarget.Si
targetetcandidatesont tous deux des objets JSON, la cible contient le candidat si chaque clé decandidatese trouve également danstarget, et si la valeur associée à chaque clé decandidatefigure dans la valeur de la clé correspondante danstarget.
Type de valeur d'entrée :
targetetcandidatesont de type JSON.json_pathest de type JSONPATH.Type de valeur de retour : BOOLEAN.
-
Exemples :
-
Vérifiez si le chemin
$.acontient la valeur1. Exécutez l'instruction suivante :SELECT json_contains(json '{"a": 1, "b": 2, "c": {"d": 4}}', json '1', '$.a') as result;Résultat :
+--------+ | result | +--------+ | 1 | +--------+ -
Vérifiez si le chemin
$.bcontient la valeur1. Exécutez l'instruction suivante :SELECT json_contains(json '{"a": 1, "b": 2, "c": {"d": 4}}', json '1', '$.b') as result;Résultat :
+--------+ | result | +--------+ | 0 | +--------+ -
Vérifiez si
{"d": 4}est contenu dans la cible. Exécutez l'instruction suivante :SELECT json_contains(json '{"a": 1, "b": 2, "c": {"d": 4}}', json '{"d": 4}') as result;Résultat :
+--------+ | result | +--------+ | 0 | +--------+
-
Utilisation d'un index de tableau JSON
Cette syntaxe est prise en charge uniquement sur les clusters dont la version du noyau est 3.1.10.6 ou ultérieure.
Un index de tableau JSON doit exister pour la colonne JSON spécifiée. Pour plus d'informations, consultez Créer un index de tableau JSON.
Ajoutez
EXPLAINavant votre instruction SQL pour consulter le plan d'exécution. Si ce dernier ne contient pas l'opérateurScanFilterProject, l'index de tableau JSON a bien été utilisé. Dans le cas contraire, l'index n'a pas été utilisé.
json_contains(json_path, cast('[candidate1,candidate2,candidate3]' as json))
Description : Vérifie si le document JSON spécifié contient tous les éléments indiqués, tels que
candidate1,candidate2etcandidate3.Types de données des valeurs d'entrée : Les valeurs
candidate1,candidate2,candidate3,...doivent toutes partager le même type de données (numérique ou chaîne).Type de valeur de retour : VARCHAR.
-
Exemples :
-
Vérifiez si la colonne JSON
vjcontientCP-018673etCP-018671.SELECT json_contains(vj, cast('["CP-018673","CP-018671"]' AS json)) FROM json_test;Résultat :
+------------------------------------------------------------+ |json_contains(vj, cast('["CP-018673","CP-018671"]' AS json))| | +------------------------------------------------------------+ | 0 | +------------------------------------------------------------+ | 0 | +------------------------------------------------------------+ | 1 | +------------------------------------------------------------+ | 0 | +------------------------------------------------------------+ | 0 | +------------------------------------------------------------+ -
Vérifiez si la colonne JSON
vjcontientCP-018673,1et2.SELECT json_contains(vj, cast('["CP-018673",1,2]' AS json)) FROM json_test;Résultat :
+------------------------------------------------------------+ |json_contains(vj, cast('["CP-018673","CP-018671"]' AS json))| | +------------------------------------------------------------+ | 0 | +------------------------------------------------------------+ | 1 | +------------------------------------------------------------+ | 1 | +------------------------------------------------------------+ | 0 | +------------------------------------------------------------+ | 1 | +------------------------------------------------------------+
-
JSON_CONTAINS_PATH
json_contains_path(json, one_or_all, json_path[, json_path,...])
Cette fonction est prise en charge uniquement sur les clusters dont la version du noyau est 3.1.5.0 ou ultérieure.
Pour consulter et mettre à jour la version mineure, accédez à la section Configuration Information de la page Cluster Information dans la console AnalyticDB for MySQL.
-
Description : Vérifie si le chemin spécifié existe dans l'objet JSON.
Si
one_or_allvaut'one', la fonction renvoie1si le document JSON contient au moins l'un des chemins spécifiés. Sinon, elle renvoie0.Si
one_or_allvaut'all', la fonction renvoie1si le document JSON contient tous les chemins spécifiés. Sinon, elle renvoie0.
Type de valeur d'entrée :
jsonest de type JSON.one_or_allest de type VARCHAR et accepte les valeurs'one'ou'all'(insensible à la casse).json_pathest une expression de chemin.Type de valeur de retour : BOOLEAN.
-
Exemples :
-
Vérifiez si le document JSON contient au moins l'un des chemins
$.aet$.e. Exécutez l'instruction suivante :SELECT json_contains_path(json '{"a": 1, "b": 2, "c": {"d": 4}}', 'one', '$.a', '$.e') AS RESULT;Résultat :
+--------+ | result | +--------+ | 1 | +--------+ -
Vérifiez si le document JSON contient à la fois les chemins
$.aet$.e. Exécutez l'instruction suivante :SELECT json_contains_path(json '{"a": 1, "b": 2, "c": {"d": 4}}', 'all', '$.a', '$.e') AS RESULT;Résultat :
+--------+ | result | +--------+ | 0 | +--------+
-
JSON_EXTRACT
La valeur de retour de la fonction
JSON_EXTRACT, à l'instar des colonnes de type JSON, ne prend pas en chargeORDER BY.Pour utiliser
JSON_EXTRACTavecJSON_UNQUOTE, convertissez d'abord la valeur de retour deJSON_EXTRACTen VARCHAR via CAST AS VARCHAR. Utilisez ensuite cette valeur convertie comme paramètre d'entrée deJSON_UNQUOTE.
json_extract(json, json_path)
-
Description : Extrait une valeur d'un document JSON au
json_pathspécifié. Si une clé du documentjsoncontient des caractères spéciaux, tels que$ou., utilisez le formatjson_pathsuivant :'$["Key"]'.Par exemple, si la clé est
$data,json_pathdoit être'$["$data"]'. Type de valeur d'entrée : Chaîne ou JSON.
Type de valeur de retour : JSON.
-
Exemples :
-
Extrayez la valeur au chemin
$[0]du tableau[10, 20, [30, 40]]. Exécutez l'instruction suivante :SELECT json_extract('[10, 20, [30, 40]]', '$[0]');Résultat :
+-------------------------------------------+ | json_extract('[10, 20, [30, 40]]', '$[0]') | +-------------------------------------------+ | 10 | +-------------------------------------------+ -
Extrayez la valeur du chemin
$datedepuis{"id":"1","$date":"12345"}. Exécutez l'instruction suivante :SELECT JSON_EXTRACT('{"id":"1","$date":"12345"}', '$["$date"]');Résultat :
+---------------------------------------------------------+ |JSON_EXTRACT('{"id":"1","$date":"12345"}', '$["$date"]') | +---------------------------------------------------------+ | "12345" | +---------------------------------------------------------+
-
JSON_KEYS
json_keys(json[, json_path])
-
Description
Si
json_pathest spécifié, cette fonction renvoie toutes les clés du chemin indiqué dans le document JSON.Si
json_pathn'est pas spécifié, cette fonction renvoie toutes les clés du chemin racine (json_path='$').
-
Type de valeur d'entrée : Seuls les paramètres de type JSON sont pris en charge.
Vous pouvez construire des données JSON des manières suivantes :
Utilisez directement des données JSON. Par exemple,
json '{"a": 1, "b": {"c": 30}}'.Convertissez explicitement une chaîne en données JSON à l'aide de la fonction CAST. Par exemple,
CAST('{"a": 1, "b": {"c": 30}}' AS json).
Type de valeur de retour : JSON ARRAY.
-
Exemples :
-
Obtenez toutes les clés du chemin
$.b. Exécutez l'instruction suivante :SELECT json_keys(CAST('{"a": 1, "b": {"c": 30}}' AS json),'$.b');Résultat :
+-----------------------------------------------------------+ | json_keys(CAST('{"a": 1, "b": {"c": 30}}' AS json),'$.b') | +-----------------------------------------------------------+ | ["c"] | +-----------------------------------------------------------+ -
Obtenez toutes les clés du chemin racine. Exécutez l'instruction suivante :
SELECT JSON_KEYS(json '{"a": 1, "b": {"c": 30}}');Résultat :
+--------------------------------------------+ | JSON_KEYS(json '{"a": 1, "b": {"c": 30}}') | +--------------------------------------------+ | ["a","b"] | +--------------------------------------------+
-
JSON_OVERLAPS
Cette syntaxe est prise en charge uniquement sur les clusters dont la version du noyau est 3.1.10.6 ou ultérieure.
Un index de tableau JSON doit exister pour la colonne JSON spécifiée. Pour plus d'informations, consultez Créer un index de tableau JSON.
Ajoutez
EXPLAINavant votre instruction SQL pour consulter le plan d'exécution. Si ce dernier ne contient pas l'opérateurScanFilterProject, l'index de tableau JSON a bien été utilisé. Dans le cas contraire, l'index n'a pas été utilisé.
json_overlaps(json, cast('[candidate1,candidate2,candidate]' as json))
Description : Vérifie si le document JSON spécifié contient l'un des éléments indiqués, tels que
candidate1,candidate2oucandidate3.Types de données des valeurs d'entrée :
candidate1,candidate2,candidate3,...peuvent être de type numérique ou chaîne, mais toutes les valeurs doivent partager le même type de données.Type de valeur de retour : VARCHAR.
-
Exemples :
-
Récupérez les données de la colonne JSON
vjcontenantCP-018673.SELECT * FROM json_test WHERE json_overlaps(vj, cast('["CP-018673"]' AS json));Résultat :
+-----+----------------------------------------------------------------------------+ | id | vj | +-----+----------------------------------------------------------------------------+ | 2 | ["CP-018673", 1, false] | +-----+----------------------------------------------------------------------------+ | 3 | ["CP-018673", 1, false, {"a": 1}] | +-----+----------------------------------------------------------------------------+ | 5 | ["CP-018673","CP-018671","CP-018672","CP-018670","CP-018669","CP-018668"] | +-----+----------------------------------------------------------------------------+ -
Récupérez les données de la colonne JSON
vjcontenant l'un des éléments1,2ou3.SELECT * FROM json_test WHERE json_overlaps(vj, cast('[1,2,3]' AS json))Résultat :
+-----+-------------------------------------+ | id | vj | +-----+-------------------------------------+ | 1 | [1,2,3] | +-----+-------------------------------------+ | 2 | ["CP-018673", 1, false] | +-----+-------------------------------------+ | 3 | ["CP-018673", 1, false, {"a": 1}] | +-----+-------------------------------------+
-
JSON_REMOVE
La fonction JSON_REMOVE est prise en charge uniquement sur les clusters dont la version du noyau est 3.1.10.0 ou ultérieure.
Pour consulter et mettre à jour la version mineure, accédez à la section Configuration Information de la page Cluster Information dans la console AnalyticDB for MySQL.
json_remove(json,json_path)
json_remove(json,array[json_path,json_path,...])
Description : Supprime l'élément situé au
json_pathspécifié d'un documentjsonet renvoie la chaîne modifiée. Vous pouvez spécifier plusieurs éléments à supprimer à l'aide dearray[json_path,json_path,...].Type de valeur d'entrée :
jsonest une chaîne VARCHAR au format JSON.json_pathest une chaîne VARCHAR au format JSON.Type de valeur de retour : VARCHAR.
-
Exemples
-
Supprimez l'élément au chemin
$.glossary.GlossDivet obtenez la chaîne modifiée. Exécutez l'instruction suivante :SELECT json_remove( '{ "glossary": { "title": "example glossary", "GlossDiv": { "title": "S", "GlossList": { "GlossEntry": { "ID": "SGML", "SortAs": "SGML", "GlossTerm": "Standard Generalized Markup Language", "Acronym": "SGML", "Abbrev": "ISO 8879:1986", "GlossDef": { "para": "A meta-markup language, used to create markup languages such as DocBook.", "GlossSeeAlso": ["GML", "XML"] }, "GlossSee": "markup" } } } } }' , '$.glossary.GlossDiv') a;Résultat :
{"glossary":{"title":"example glossary"}} -
Supprimez les éléments aux chemins
$.glossary.titleet$.glossary.GlossDiv.title, puis obtenez la chaîne modifiée. Exécutez l'instruction suivante :SELECT json_remove( '{ "glossary": { "title": "example glossary", "GlossDiv": { "title": "S", "GlossList": { "GlossEntry": { "ID": "SGML", "SortAs": "SGML", "GlossTerm": "Standard Generalized Markup Language", "Acronym": "SGML", "Abbrev": "ISO 8879:1986", "GlossDef": { "para": "A meta-markup language, used to create markup languages such as DocBook.", "GlossSeeAlso": ["GML", "XML"] }, "GlossSee": "markup" } } } } }' , array['$.glossary.title', '$.glossary.GlossDiv.title']) a;Résultat :
{"glossary":{"GlossDiv":{"GlossList":{"GlossEntry":{"GlossTerm":"Standard Generalized Markup Language","GlossSee":"markup","SortAs":"SGML","GlossDef":{"para":"A meta-markup language, used to create markup languages such as DocBook.","GlossSeeAlso":["GML","XML"]},"ID":"SGML","Acronym":"SGML","Abbrev":"ISO 8879:1986"}}}}}
-
JSON_SIZE
json_size(json, json_path)
-
Description : Renvoie la taille d'un objet ou d'un tableau JSON au
json_pathspécifié.RemarqueSi
json_pathne pointe pas vers un objet ou un tableau JSON, cette fonction renvoie0. Type de valeur d'entrée : Chaîne ou JSON.
Type de valeur de retour : BIGINT.
-
Exemples :
-
Le
json_pathpointe vers un objet JSON. Exécutez l'instruction suivante :SELECT json_size('{"x":{"a":1, "b": 2}}', '$.x') as result;Résultat :
+--------+ | result | +--------+ | 2 | +--------+ -
Le
json_pathne pointe pas vers un objet ou un tableau JSON. Exécutez l'instruction suivante :SELECT json_size('{"x": {"a": 1, "b": 2}}', '$.x.a') as result;Résultat :
+--------+ | result | +--------+ | 0 | +--------+
-
JSON_SET
La fonction JSON_SET est prise en charge uniquement sur les clusters dont la version du noyau est 3.2.2.8 ou ultérieure.
Pour consulter et mettre à jour la version mineure, accédez à la section Configuration Information de la page Cluster Information dans la console AnalyticDB for MySQL.
json_set(json, json_path, value[, json_path, value] ...)
-
Description : Insère ou met à jour des données dans un document
jsonaujson_pathspécifié, puis renvoie le documentjsonmis à jour.Si
jsonoujson_pathest null, la fonction renvoie null.Si le document
jsonn'est pas dans un format JSON valide, ou si unjson_pathn'est pas une expression de chemin valide, une exception est levée.Si le
json_pathspécifié existe, sa valeur est remplacée parvalue.-
Si le
json_pathspécifié n'existe pas dans le documentjson:Si
json_pathpointe vers un objet JSON,valueest ajoutée en tant que nouvel élément à l'emplacement spécifié parjson_path.Si
json_pathpointe vers un tableau JSON, la fonction vérifie si des données existent à la position précédant lejson_pathspécifié. En l'absence de données, des valeursnullcomblent l'écart avant l'insertion devalue. Sinon,valueest insérée directement.Dans les autres cas, une exception est levée.
-
Types de valeurs d'entrée :
json: VARCHAR ou JSON.json_path: VARCHAR.value: BOOLEAN, TINYINT, SMALLINT, INT, BIGINT, FLOAT, DOUBLE, DECIMAL, VARCHAR, VARBINARY, DATE, DATETIME, TIMESTAMP ou TIME.
Type de valeur de retour : JSON.
-
Exemples :
-
Insérez des données dans un document
jsonoùjson_pathest null.SELECT JSON_SET('{ "a": 1, "b": [2, 3]}', null, '10');Résultat :
+------------------------------------------------+ | JSON_SET('{ "a": 1, "b": [2, 3]}', NULL, '10') | +------------------------------------------------+ | null | +------------------------------------------------+ -
Insérez des données dans un document
jsonoùjson_pathn'est pas une expression de chemin valide.SELECT JSON_SET('{ "a": 1, "b": [2, 3]}', '$.b.c', '10');Résultat :
Failed to execute json_set() for json_path: $.b.c -
Insérez des données dans un document
jsonoùjson_path1existe, tandis quejson_path2n'existe pas et pointe vers un objet JSON.SELECT JSON_SET('{ "a": 1, "b": [2, 3]}', '$.a', 10, '$.c', '[true, false]');Résultat :
+-----------------------------------------------------------------------+ | JSON_SET('{ "a": 1, "b": [2, 3]}', '$.a', 10, '$.c', '[true, false]') | +-----------------------------------------------------------------------+ | {"a":10,"b":[2,3],"c":"[true, false]"} | +-----------------------------------------------------------------------+ -
Insérez des données dans un document
jsonoù lejson_pathspécifié n'existe pas et pointe vers un tableau JSON.SELECT JSON_SET('{ "a": 1, "b": [2, 3]}', '$.b[4]', '[true, false]');Résultat :
+----------------------------------------------------------------+ | JSON_SET('{ "a": 1, "b": [2, 3]}', '$.b[4]', '[true, false]') | +----------------------------------------------------------------+ | {"a":1,"b":[2,3,null,null,"[true, false]"]} | +----------------------------------------------------------------+
-
JSON_UNQUOTE
json_unquote(json_value)
Cette fonction est prise en charge uniquement sur les clusters dont la version du noyau est 3.1.5.0 ou ultérieure.
Pour consulter et mettre à jour la version mineure, accédez à la section Configuration Information de la page Cluster Information dans la console AnalyticDB for MySQL.
-
Cette commande supprime les guillemets doubles de
json_value, interprète certains caractères d'échappement et renvoie la valeur résultante.AnalyticDB for MySQL ne valide pas
json_value. Cette fonction traite la valeur selon la logique décrite, quejson_valuerespecte ou non la syntaxe JSON.Les caractères d'échappement pris en charge figurent dans le tableau suivant.
Avant interprétation
Après interprétation
\"Guillemet double (
").\bRetour arrière.
\fSaut de page.
\nSaut de ligne.
\rRetour chariot.
\tTabulation.
\\Barre oblique inverse (
\).\uXXXXCaractère UTF-8.
Type de valeur d'entrée : VARCHAR.
Type de valeur de retour : VARCHAR.
-
Exemples :
-
Obtenez la chaîne sans guillemets
abc. Exécutez l'instruction suivante :SELECT json_unquote('"abc"');Résultat :
+-----------------------+ | json_unquote('"abc"') | +-----------------------+ | abc | +-----------------------+ -
L'instruction suivante renvoie la chaîne interprétée et sans guillemets :
SELECT json_unquote('"\\t\\u0032"');Résultat :
+------------------------------+ | json_unquote('"\\t\\u0032"') | +------------------------------+ | 2 | +------------------------------+
-
Annexe : Syntaxe JSON Path
Utilisation
Utilisez
$.keyName[.keyName]...pour accéder à une clé spécifique d'un objet JSON.Utilisez $[nonNegativeInteger] pour accéder au Nième élément d'un tableau JSON, où n est un entier non négatif.
Utilisez $.keyName[.keyName]...[nonNegativeInteger] pour accéder au Nième élément d'un tableau JSON imbriqué dans un objet JSON, où n est un entier non négatif.
Remarques
La syntaxe JSON Path d'AnalyticDB for MySQL ne prend pas en charge les caractères génériques * et **. Par conséquent, les expressions telles que '$.*', '$.hobbies[*]', '$.address.**' et '$.hobbies.**' ne sont pas prises en charge.
Exemples
Prenons les données JSON suivantes.
{
"name": "Alice",
"age": 25,
"address": {
"city": "Hangzhou",
"zip": "10001"
},
"hobbies":["reading", "swimming", "cycling"]
}
|
Description |
Exemple correct |
Exemple incorrect |
|
Accéder à la valeur de la clé |
$.name |
name |
|
Accéder à la valeur de la clé |
$.address.city |
$.address[0] |
|
Accéder au premier élément du tableau JSON |
$.hobbies[0] |
$.hobbies.[0] |
FAQ
Comment résoudre l'erreur java.lang.NullPointerException lors de l'utilisation de la fonction JSON_OVERLAPS ?
Cause : Cette erreur survient si vous utilisez une instruction ALTER pour créer un index JSON, mais que l'opération BUILD n'a pas été exécutée ou n'est pas encore terminée. Dans ce cas, l'index JSON n'est pas actif.
Solution :
-
Si l'opération
BUILDn'a pas été exécutée :Un cluster AnalyticDB for MySQL déclenche automatiquement une tâche `BUILD` lorsque certaines conditions sont remplies. Vous pouvez également déclencher manuellement une tâche `BUILD`.
-
Si l'opération
BUILDa été exécutée :Exécutez l'instruction suivante pour vérifier l'état de la tâche
BUILD. Si le champstatusdu résultat afficheFINISH, l'opérationBUILDest terminée.SELECT table_name, schema_name, status FROM INFORMATION_SCHEMA.KEPLER_META_BUILD_TASK ORDER BY create_time DESC LIMIT 10;
Pour plus d'informations sur BUILD, consultez BUILD.
Références
JSON : Décrit le type de données JSON.
Index JSON : Explique comment créer des index pour les objets et tableaux JSON.