Função MySQL JSON_SCHEMA_VALID()

Resumo : neste tutorial, você aprenderá como usar a JSON_SCHEMA_VALID()função MySQL para validar um documento JSON em um esquema JSON.

Introdução à função JSON_SCHEMA_VALID() do MySQL

Um esquema JSON é um documento que descreve a estrutura dos dados JSON . Ele define os tipos de dados, restrições e relacionamentos entre diferentes partes do documento JSON. Resumindo, serve como modelo para validar a estrutura de um documento JSON.

No MySQL, a JSON_SCHEMA_VALID()função permite verificar se um determinado documento JSON é válido em relação a um esquema JSON especificado. Retorna verdadeiro (1) se o documento JSON for válido de acordo com o esquema e falso (0) caso contrário.

Aqui está a sintaxe da JSON_SCHEMA_VALID()função:

JSON_SCHEMA_VALID(json_schema, json_document)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Nesta sintaxe:

  • json_schema: este é o esquema JSON no qual o documento é validado.
  • json_document: este é o documento JSON que você deseja validar.

Exemplo de função JSON_SCHEMA_VALID() do MySQL

Vamos dar um exemplo simples para ilustrar como usar JSON_SCHEMA_VALID()a função.

Primeiro, crie uma nova tabela chamada employees:

CREATE TABLE employees (
    id INT PRIMARY KEY AUTO_INCREMENT,
    details JSON
);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Segundo, insira os dados na employeestabela:

INSERT INTO employees (details) 
VALUES ('{"name": "John", "age": 30, "department": "HR"}'),
       ('{"name": "Alice", "age": 25, "department": "IT"}');Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

O seguinte define um esquema JSON que especifica a estrutura esperada para detalhes do funcionário:

SET @employee_schema = '{
    "type": "object",
    "properties": {
        "name": {"type": "string"},
        "age": {"type": "integer"},
        "department": {"type": "string"}
    },
    "required": ["name", "age", "department"]
}';Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

O esquema define um objeto com três propriedades obrigatórias: nome (string), idade (inteiro) e departamento (string).

Agora, você pode usar JSON_SCHEMA_VALID()a função para verificar se os documentos JSON armazenados aderem ao esquema definido:

SELECT 
  id, 
  JSON_SCHEMA_VALID(@employee_schema, details) AS is_valid 
FROM 
  employees;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Esta consulta retorna um conjunto de resultados com o funcionário IDse um booleano indicando se os detalhes de cada funcionário são válidos de acordo com o esquema especificado:

+----+----------+
| id | is_valid |
+----+----------+
|  1 |        1 |
|  2 |        1 |
+----+----------+
2 rows in set (0.01 sec)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

As seguintes tentativas de inserir um funcionário que não possui as informações de idade:

INSERT INTO employees (details) 
VALUES ('{"name": "Bob", "department": "Finance"}');Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Agora, ao executar a consulta de validação novamente, você verá que a nova entrada está marcada como inválida:

SELECT 
  id, 
  JSON_SCHEMA_VALID(@employee_schema, details) AS is_valid 
FROM 
  employees;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+----+----------+
| id | is_valid |
+----+----------+
|  1 |        1 |
|  2 |        1 |
|  3 |        0 |
+----+----------+
3 rows in set (0.00 sec)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Resumo

  • Use a JSON_SCHEMA_VALID()função para validar documentos JSON em um esquema especificado.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *