2020年5月24日日曜日

Ubuntu(WSL)のMariaDBでJSONを使う

WSL(Ubuntu18.04)のMariaDBでJSONを保存したいと思ったが、Ubuntu18.04のaptコマンドでインストールされるMariaDBのバージョンは10.1で、JSONデータ型が使用できるのは10.2以降(JSON Data Type)。そこで現時点の最新安定版10.4をインストールしてJSONを登録できるようにする。


環境


WSL(Ubuntu18.04)。



リポジトリのセットアップ



MariaDBのサイト(MariaDB Package Repository Setup and Usage)に、新しいバージョンのMariaDB用リポジトリをセットアップするスクリプトが用意されている。それをダウンロードして、MariaDB Serverのバージョン10.4を指定して実行する。


作成されたリポジトリ設定ファイルを確認。MariaDB Serverの設定でバージョンが10.4になっている。


aptコマンドで確認するとインストールされるバージョンが10.4になっている。



MariaDB10.4のインストール


リポジトリのセットアップができたら、aptコマンドで通常通りにインストールできる。


インストールされたMariaDB Clientのバージョンを確認。


MariaDB Serverもバージョン10.4がインストールされた。



MariaDBでJSONデータ型を使う


JSON Data Typeによると、バージョン10.2.7で追加されたデータ型であるJSONはLONGTEXTのエイリアス。JSON以外のテキストが登録されるのを防ぐためにJSON_VALIDという関数が用意されており、CHECK制約として使える。ただし、10.4.3以上ではJSONデータ型を使うときにはこの制約が自動で適用されるらしい。

今回インストールしたバージョンは10.4.12だが、CHECK制約をつけて試してみる。まずはMariaDBに接続してテーブルを作成。JSONデータ型のdataカラムはLONGTEXTになっている。


JSONでなくただのテキストをINSERTしようとするとエラーになる。


JSONをINSERTしてみる。


JSONデータ型の使い方についてはJSON を扱う – MariaDB Serverが参考になる。


0 件のコメント:

コメントを投稿