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_1、column_2など)を生成します。
メリット
- スキーマ定義が省略された部分的なSQLダンプでも動作
INSERT文のカラム順序を保持- カラムリスト内のクォートされた識別子とクォートされていない識別子を処理
ユースケース
アプリケーションログ、チャットメッセージ、ドキュメントからのSQLスニペットで、完全なスキーマエクスポートがなくINSERT文のみが利用可能な場合に使用します。