無料Webツール

CSV → SQL INSERT生成

CSVのヘッダーと行データからSQL INSERT文を生成します。

入力と設定

使い方

CSVの数十〜数百行をINSERT文へ直したいとき、手でクォートを付けるのは地味に事故が起きやすい作業です。このツールはヘッダーを列名として、複数行INSERTをまとめて生成します。ただし、SQL方言まで完全に面倒を見るツールではありません。

  1. CSVを貼り付け、INSERT先のテーブル名を入力します。
  2. 1つのINSERT文にまとめる行数を指定して生成します。
  3. 生成されたSQLの列名・NULL・数値・文字列の扱いを確認し、対象DBの方言に合うことを確かめてから使います。

このツールが自動でやること

空欄は NULL、数値として読める値はクォートなし、その他はシングルクォートで囲みます。文字列中の ' はSQL用に二重化します。列名はバッククォートで囲みます。

CSVの1行目を列名として使います。空のヘッダーや重複ヘッダーがあっても、DB側で有効かどうかまでは判定しません。SQL生成前にヘッダー差分や列名の重複を確認しておくと、実行時エラーを減らせます。

つまり、かなりMySQL寄りです

バッククォートによる識別子引用はMySQL系では見慣れていますが、PostgreSQLやSQL Serverなどでは書き方が異なります。生成されたSQLを“どのDBでもそのまま実行できる完成品”とは考えず、投入前の下書きとして見るのが安全です。

先頭ゼロ付きIDは特に注意します

00123 は現在の生成ロジックでは数値らしい値としてクォートされません。DBへ数値として入れれば123になります。商品コードや会員IDのようにゼロを含めて文字列で保存したい列は、生成後のSQLを必ず確認してください。

バッチ行数は、SQLを分ける単位です

100を指定すると、最大100行ずつのINSERT文に分かれます。大量CSVを1文にしすぎると扱いづらくなるので、DBや実行環境の制限に合わせて調整します。

生成できることと、安全に実行できることは別です

外部キー、NOT NULL、型制約、重複キー、トランザクションなどはこの画面だけでは判断できません。本番DBへ流す前に、ステージングやトランザクション内で確認できると安心です。

CSV内の文字列はSQL文字列としてエスケープしますが、これは入力値の意味や権限まで検証するものではありません。特に本番DBでは、生成SQLをレビューしてから実行する運用を前提にしてください。