AI เหมาะสำหรับ การแปลงรูปแบบ (CSV ↔ JSON ↔ SQL) และสคริปต์การย้ายข้อมูล เพราะกฎการแปลงนั้นเป็นเชิงกลศาสตร์ เคล็ดลับคือการให้บริบทที่เพียงพอเพื่อให้ถูกต้องและปลอดภัย: schema ตัวอย่างแถว และข้อกำหนดด้านความปลอดภัยที่ชัดเจน
AI เหมาะสำหรับ การแปลงรูปแบบ (CSV ↔ JSON ↔ SQL) และสคริปต์การย้ายข้อมูล เพราะกฎการแปลงนั้นเป็นเชิงกลศาสตร์ เคล็ดลับคือการให้บริบทที่เพียงพอเพื่อให้ถูกต้องและปลอดภัย: schema ตัวอย่างแถว และข้อกำหนดด้านความปลอดภัยที่ชัดเจน
import csv
# Source CSV: id,email,signup_date (signup_date may be blank)
# Target table: users(id INT, email TEXT NOT NULL, signup_date DATE NULL)
def csv_to_sql(path: str) -> list[str]:
statements = []
with open(path, newline="", encoding="utf-8") as f:
for row in csv.DictReader(f):
email = row["email"].strip()
if not email: # validate: skip invalid rows, don't insert garbage
continue
date = row["signup_date"].strip() or None
email_sql = email.replace("'", "''") # escape quotes to avoid broken SQL / injection
date_sql = f"'{date}'" if date else "NULL"
# ON CONFLICT makes it idempotent: re-running won't create duplicates
statements.append(
f"INSERT INTO users (id, email, signup_date) "
f"VALUES ({int(row['id'])}, '{email_sql}', {date_sql}) "
f"ON CONFLICT (id) DO NOTHING;"
)
return statements
ความเห็นเครื่องหมายส่วนที่สำคัญ: validation (ข้ามอีเมลว่าง) escaping (เครื่องหมายคำพูด) และ idempotency (ON CONFLICT DO NOTHING) ขอให้ AI รวมทั้งสามอย่าง — นี่คือสิ่งที่สคริปต์天真ลืม
การย้ายข้อมูลมีความเสี่ยงสูงและมักเป็นครั้งเดียว: สคริปต์ที่แทรกซ้ำหรือลบแถวอาจมีค่าใช้จ่ายสูงในการย้อนกลับ AI จะเร่งการเขียนการแปลง แต่คุณสมบัติด้านความปลอดภัย — idempotency validation และ dry-run บนสำเนา — ไม่สามารถเจรจาได้ ถือว่าสคริปต์ที่สร้างขึ้นเป็นร่างที่คุณต้องอ่านและทดสอบ ไม่ใช่สิ่งที่ต้องเรียกใช้อย่างตาบอดกับข้อมูลจริง