コンテンツへスキップ
🛠️ToolsShed

SQL INSERTジェネレーター

表形式データ入力からSQL INSERT文を生成します。

引用符スタイル:
SQL出力

このツールについて

SQL INSERT ジェネレーターは、表形式のデータを実行可能なSQL INSERT ステートメントに変換する開発者向けツールです。スプレッドシートからのデータ移行、テストフィクスチャの作成、またはデータベースへの初期値投入を行う際に、手作業で INSERT 構文を書く退屈な作業を排除します。このツールはデータ構造を読み込み、MySQL、PostgreSQL、SQLite、SQL Server などのほとんどのリレーショナルデータベースで動作する構文的に正しい SQL を生成します。

ツールを使用するには、表形式のデータ(スプレッドシート、CSV ファイル、またはテキストテーブルから)を入力領域に貼り付け、ターゲットデータベースタイプを選択します。ジェネレーターは自動的に列を検出し、データ型を推測し、特殊文字とエスケープを処理し、データベースクライアントに直接貼り付ける準備ができた清潔な SQL コードを生成します。実行前にテーブル名をカスタマイズし、生成されたステートメントを調整できます。

このツールは、テスト環境をセットアップする開発者、新しいインスタンスをブートストラップするデータベース管理者、一括インポートを準備するデータエンジニアに特に価値があります。NULL 値、文字列エスケープ、日付形式などの一般的なエッジケースを処理し、時間を節約し、インポート操作を破壊する可能性のある構文エラーを減らします。

よくある質問

コード実装

# Generate SQL INSERT statements from a list of dicts
def generate_inserts(table, rows, batch=False):
    if not rows:
        return ""
    columns = ", ".join(rows[0].keys())
    def fmt(v):
        if isinstance(v, (int, float)):
            return str(v)
        return f"'{str(v).replace(chr(39), chr(39)+chr(39))}'"

    if batch:
        values = ",\n  ".join(
            "(" + ", ".join(fmt(v) for v in row.values()) + ")"
            for row in rows
        )
        return f"INSERT INTO {table} ({columns})\nVALUES\n  {values};"
    else:
        return "\n".join(
            f"INSERT INTO {table} ({columns}) VALUES ({', '.join(fmt(v) for v in row.values())});"
            for row in rows
        )

rows = [
    {"id": 1, "name": "Alice", "email": "alice@example.com"},
    {"id": 2, "name": "Bob",   "email": "bob@example.com"},
]
print(generate_inserts("users", rows, batch=True))

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.