JSONレコードをSQL INSERT文に変換する

APIやエクスポートのオブジェクト配列をそのまま実行できるINSERT文に。テーブル名と方言を選んでコピーして実行します。

このガイドで使う道具

やりたいこと

シードデータや参照テーブル、APIから取ったレコードをデータベースに入れたい。INSERT文を手で書くのは面倒なので、正しいクォート付きで出力する変換器を使います。

変換する

フラットなオブジェクトのJSON配列を貼ります。各オブジェクトが1行、キーが列名になります。テーブル名と方言を選びます(識別子のクォートはMySQLがバッククォート、他は二重引用符)。文字列はエスケープ、nullはNULL、真偽値と数値はそのまま出力します。

  • キーが揃っていなくても大丈夫です。最も広いオブジェクトが列を決め、欠損値はNULLになります。
  • ネストしたオブジェクトや配列はJSON文字列に直列化され、TEXT/JSON列に入ります。

具体例

APIが返した12件の商品オブジェクト。貼ってテーブルを`products`、クォートをMySQLにすると、12本のINSERT文が出ます。マイグレーションに貼るかコンソールで実行します。

対応範囲

INSERTのみで、CREATE TABLEやUPDATE/UPSERTは出しません。入力はJSON配列(単一オブジェクトも可)で2MB・2000行まで。本番で実行する前に生成SQLを検証してください。列が存在することが前提です。