MySQL の JSON 挿入の問題

MySQL の JSON 挿入の問題

MySQL 5.7.8 以降では、JSON テキストでデータを効率的に取得できるネイティブ JSON 型のサポートが開始されました。この型には次の利点があります。

  • 保管中の自動検証、検証に失敗した場合にはエラー報告
  • より優れたストレージ構造。内部構造は、すばやく読み取ることができる JSON テキスト要素を格納するために使用されます。新しいサーバーは、JSON テキストを文字列として読み取って変換するのではなく、バイナリ形式で読み取ります。このバイナリ形式により、サーバーは値全体を読み取ることなく、テキスト内のキーまたは配列インデックスによってサブオブジェクト (ネストされた配列) を取得できます。

さらに、システムでは JSON 形式に関していくつかの制限があります。

  • JSON テキストの最大長は、システム定数 max_allowed_pa​​cket によって決まります。この値は、サーバーがデータを保存している場合にのみ制限されます。メモリ内で計算する場合は、この値を超えてもかまいません。
  • JSON列にはデフォルト値を設定できません
  • 他のバイナリ列と同様に、JSON 列はインデックスを作成できません。ただし、JSON 列に格納されているテキストから、特定のテーブル列の値にインデックスを作成することはできます。 MySQL 最適コントローラーは、JSON 表現を使用して作成されたインデックスもクエリします。

jsonデータを挿入する際に問題が発生しました

SQL 構文にエラーがあります。MySQL サーバーのバージョンに対応するマニュアルで、'{

コードを挿入

`players` (`id`,`player_and_games`) に値(1,{ を挿入します。
  "id":1,
  "名前":"aaa",
  「プレイしたゲーム」:{
    「戦場」:{
      "武器":"adsf",
      「レベル」:20
    },
    "クレイジー":{
      "武器":"adsf",
      「レベル」:20
    }
  }
})

問題があります。json は引用符を使用していません。正しい方法は次のとおりです。

`players` (`id`,`player_and_games`) に値(1,'{ を挿入します。
  "id":1,
  "名前":"aaa",
  「プレイしたゲーム」:{
    「戦場」:{
      "武器":"adsf",
      「レベル」:20
    },
    "クレイジー":{
      "武器":"adsf",
      「レベル」:20
    }
  }
}')

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。これについてもっと知りたい場合は、次のリンクをご覧ください。

以下もご興味があるかもしれません:
  • MySQL 5.7 における基本的な JSON 操作ガイド
  • MySQL 5.7 JSON 型の使用の詳細
  • Mysql5.7 で JSON 操作関数を使用する手順
  • MySQL 5.7 JSON形式の取得に関する簡単な説明
  • mysql5.6 以前のデータベースで json をクエリする方法
  • MySQLにおけるJSON系列操作関数の詳しい説明
  • MySQL 操作: JSON データ型の操作
  • MySQL (5.6 以下) の JSON 解析の詳細な例
  • mysql5.7 の新しい json フィールド タイプの使用例の分析

<<:  ES6分解課題の原理と応用

>>:  Vueタブとキャッシュページを切り替えるいくつかの方法

推薦する

いくつかの CSS3 タグの短縮形 (推奨)

border-radius: CSS3 丸い角構文: border-radius: 25px;楕円...

HTMLのタグについての簡単な説明

0. タグとは何ですか? XML/HTML コードコンテンツをクリップボードにコピー<入力 t...

純粋な CSS3 でペットの鶏のサンプルコードを実現

最近、CSS3に関する知識や記事をたくさん読んできましたが、CSS3はとても便利に使えると思います。...

Linux仮想マシンの静的IPアドレスを構成するための手順を完了します

序文多くの場合、仮想マシンを使用します。たとえば、一部のテストは検出されません。何かを壊すことを心配...

Vue 初心者ガイド: 最初の Vue-cli スキャフォールディング プログラムの作成

1. Vue - 最初の vue-cli プログラムVueの開発はNodeJSに基づいています。実際...

dockercompose を使用して springboot-mysql-nginx アプリケーションをビルドする

前回の記事では、Docker を使用して、コンパイルされた jar パッケージをイメージに組み込む ...

JavaScript でシンプルなタイマーを実装する

この記事では、参考までに簡単なタイマーを実装するためのJavaScriptの具体的なコードを紹介しま...

HTML テーブル マークアップ チュートリアル (5): ライト ボーダー カラー属性 BORDERCOLORLIGHT

表では、左上の境界線の色を個別に定義したり、セルの右下の境界線の色を定義したりできます。これら 2 ...

Promise カプセル化 wx.request メソッド

前回の記事では、Promise を使用して小さなプログラム wx.request をカプセル化する実...

Vue パッケージサイズの最適化の実装 (1.72M から 94K)

1. 背景最近、独立した開発者がUIデザインを行うのを支援するために、uideaというWebサイト...

Linux で MySQL 8.0 バージョンをアンインストールする方法

1. MySQLをシャットダウンする [root@localhost /]# サービスmysqldを...

MySQLコンテナ間のレプリケーション構成例の詳細な説明

背景先週、会社で MySQL レプリケーションのトレーニングを受けたので、今週末は学んだことを実践す...

JSは円形のプログレスバーのドラッグとスライドを実装します

この記事の例では、円形のプログレスバーのドラッグアンドスライドを実現するための具体的なJSコードを紹...

カルーセル効果を作成するためのjs

カルーセルはフロントエンド開発において比較的重要なポイントだと思います。ネイティブjsの知識ポイント...

Linux mysql5.5 を mysql5.7 にアップグレードする手順と落とし穴

目次Linux MySQL 5.5 が MySQL 5.7 にアップグレードされました1. mysq...