CREATE TABLEなしでINSERT文をCSVに変換する

明示的なカラムリストを含むがCREATE TABLE定義がないINSERT INTO文からCSVを抽出します。ツールはINSERT構文から直接カラム名を読み取ります。

Basic Extraction

詳細な説明

INSERT文のみの場合

すべてのSQLダンプにCREATE TABLE定義が含まれているわけではありません。マイグレーションツールからエクスポートされたもの、アプリケーションログからコピーされたもの、バックアップスクリプトから抽出されたものなど、INSERT INTO文しかない場合もあります。SQLからCSVツールはこれをシームレスに処理します。

SQLの例

INSERT INTO products (id, name, price, category) VALUES
  (1, 'Laptop', 999.99, 'Electronics'),
  (2, 'Desk Chair', 249.50, 'Furniture'),
  (3, 'Headphones', 79.99, 'Electronics');

生成されるCSV

id,name,price,category
1,Laptop,999.99,Electronics
2,Desk Chair,249.50,Furniture
3,Headphones,79.99,Electronics

カラム名の解決

CREATE TABLEがない場合、ツールはINSERT INTO文のテーブル名の後の括弧で囲まれたリストからカラム名を読み取ります:

INSERT INTO products (id, name, price, category) VALUES ...
                      ↑ ここからカラム名を抽出

CREATE TABLEも明示的なカラムリストも利用できない場合、ツールは最初の行タプルの値の数に基づいてプレースホルダー名(column_1column_2など)を生成します。

メリット

  • スキーマ定義が省略された部分的なSQLダンプでも動作
  • INSERT文のカラム順序を保持
  • カラムリスト内のクォートされた識別子とクォートされていない識別子を処理

ユースケース

アプリケーションログ、チャットメッセージ、ドキュメントからのSQLスニペットで、完全なスキーマエクスポートがなくINSERT文のみが利用可能な場合に使用します。

試してみる — SQL to CSV Converter

フルツールを開く