複数のINSERT文を1つのCSVに統合する

同じテーブルを対象とする複数の個別INSERT INTO文の行を、統一されたヘッダーを持つ単一のCSV出力に結合します。

Basic Extraction

詳細な説明

個別のINSERT文の統合

データベースエクスポートやシードファイルには、単一の複数行インサートではなく、同じテーブルに対する複数のINSERT INTO文が含まれていることがよくあります。これはツールが行のバッチごとに1つのINSERTを生成する場合や、データが段階的に追加される場合によく発生します。

SQLの例

CREATE TABLE employees (
  id INTEGER PRIMARY KEY,
  name VARCHAR(100),
  department VARCHAR(50),
  salary DECIMAL(10,2)
);

INSERT INTO employees (id, name, department, salary)
  VALUES (1, 'Alice', 'Engineering', 95000.00);
INSERT INTO employees (id, name, department, salary)
  VALUES (2, 'Bob', 'Marketing', 82000.00);
INSERT INTO employees (id, name, department, salary)
  VALUES (3, 'Charlie', 'Engineering', 105000.00);

生成されるCSV

id,name,department,salary
1,Alice,Engineering,95000.00
2,Bob,Marketing,82000.00
3,Charlie,Engineering,105000.00

統合の仕組み

ツールはすべてのINSERT INTO文を順番に処理します。同じテーブルを対象とする複数の文がある場合:

  1. カラム名は最初のINSERTまたはCREATE TABLE定義によって決定されます
  2. 後続のすべてのINSERT行は同じ結果セットに追加されます
  3. 後のINSERTで以前に見られなかった新しいカラムが導入された場合、カラムリストに追加されます
  4. 新しく追加されたカラムの値がない行は空文字列になります

これにより、断片化されたデータベースエクスポートを手動編集なしで単一のクリーンなCSVファイルに統合できます。

ユースケース

mysqldumpの--skip-extended-insertオプションのように、各レコードに対して個別のINSERT文を出力するツールからの断片化されたデータベースエクスポートファイルの統合。

試してみる — SQL to CSV Converter

フルツールを開く