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.