MySql JSON Schema - PullRequest
       11

MySql JSON Schema

1 голос
/ 12 марта 2019

У меня есть таблица в MySql примерно так:

create table json_docs (
  id int auto_increment primary_key,
  doc json not null
)

У меня также есть схема json, которой подчиняется этот столбец doc.

{
  "$id": "https://my.org/namespace/doc.schema.json",
  "type": "object",
  "properties": {...}
}

Есть ли способ применить эту схему в MySql во время вставки или обновления?

insert into json_docs (doc) values ('{...}')

Я также использую PHP Laravel. Если есть способ сделать это на уровне модели Laravel, мне также будет интересно.

Заранее спасибо за помощь!

Ответы [ 2 ]

2 голосов
/ 12 июля 2019

MySQL имеет поддержку проверки JSON.

https://dev.mysql.com/doc/refman/8.0/en/json-validation-functions.html

1 голос
/ 12 марта 2019

MySQL не имеет встроенной функции для проверки документов JSON по схеме.

Обновление: эта функция теперь существует в 8.0.17, но до этой версии следующий ответ все ещеприменяется:

Вы должны будете проверить свой документ в своем приложении, независимо от вставки его в базу данных.

См. https://github.com/justinrainbow/json-schema для проверки JSON с открытым исходным кодом.в PHP.

...