SQL INSERT 생성기
표 형식 데이터 입력으로 SQL INSERT 문을 생성합니다.
이 도구 소개
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.