AI ਫਾਰਮੇਟ ਪਰਿਵਰਤਨ (CSV ↔ JSON ↔ SQL) ਅਤੇ ਮਾਈਗ੍ਰੇਸ਼ਨ ਸਕ੍ਰਿਪਟਾਂ ਲਈ ਬਹੁਤ ਢੁਕਵਾਂ ਹੈ ਕਿਉਂਕਿ ਪਰਿਵਰਤਨ ਨਿਯਮ ਮਸ਼ੀਨੀ ਹਨ। ਤਰਕ ਇਹ ਹੈ ਕਿ ਇਸ ਨੂੰ ਸਹੀ ਅਤੇ ਸੁਰਖਿਅਤ ਹੋਣ ਲਈ ਕਾਫ਼ੀ ਸਬੰਧ ਦਿਓ: ਸਕੀਮਾ, ਇੱਕ ਨਮੂਨਾ ਕਤਾਰ, ਅਤੇ ਸਪਸ਼ਟ ਸੁਰਖਿਆ ਲੋੜਾਂ।
AI ਫਾਰਮੇਟ ਪਰਿਵਰਤਨ (CSV ↔ JSON ↔ SQL) ਅਤੇ ਮਾਈਗ੍ਰੇਸ਼ਨ ਸਕ੍ਰਿਪਟਾਂ ਲਈ ਬਹੁਤ ਢੁਕਵਾਂ ਹੈ ਕਿਉਂਕਿ ਪਰਿਵਰਤਨ ਨਿਯਮ ਮਸ਼ੀਨੀ ਹਨ। ਤਰਕ ਇਹ ਹੈ ਕਿ ਇਸ ਨੂੰ ਸਹੀ ਅਤੇ ਸੁਰਖਿਅਤ ਹੋਣ ਲਈ ਕਾਫ਼ੀ ਸਬੰਧ ਦਿਓ: ਸਕੀਮਾ, ਇੱਕ ਨਮੂਨਾ ਕਤਾਰ, ਅਤੇ ਸਪਸ਼ਟ ਸੁਰਖਿਆ ਲੋੜਾਂ।
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
ਨਿੱਪਿਆਂ ਮਹੱਤਵਪੂਰਨ ਹਿੱਸਿਆਂ ਨੂੰ ਚਿਨ੍ਹਤ ਕਰਦੇ ਹਨ: ਪ੍ਰਮਾਣਿਕਤਾ (ਖਾਲੀ ਈਮੇਲਾਂ ਨੂੰ ਛੱਡ ਦਿਓ), escaping (ਹਵਾਲੇ), ਅਤੇ idempotency (ON CONFLICT DO NOTHING)। AI ਨੂੰ ਸਾਰੇ ਤਿੰਨ ਨੂੰ ਸ਼ਾਮਲ ਕਰਨ ਲਈ ਕਹੋ — ਇਹ ਉਹ ਚੀਜ਼ਾਂ ਹਨ ਜਿਨ੍ਹਾਂ ਨੂੰ ਇੱਕ ਨਾਇਆ ਲਿਆ ਸਕ੍ਰਿਪਟ ਭੁੱਲ ਜਾਂਦਾ ਹੈ।
ਡਾਟਾ ਮਾਈਗ੍ਰੇਸ਼ਨ ਉੱਚ-ਅਸਲ ਅਤੇ ਕਾਫ਼ੀ ਇੱਕ-ਸ਼ਾਟ ਹੈ: ਇੱਕ ਸਕ੍ਰਿਪਟ ਜੋ ਡਬਲ-ਇਨ-ਪਰਟ ਜ਼ਮੀਨ ਜ਼ਖਮ ਸਾਰੀ ਕਤਾਰਾਂ ਨੂੰ ਉਤਾਰ ਸਕਦਾ ਹੈ ਅਨਾ ਕਰਨ ਲਈ ਮਹੰਗਾ ਹੋ ਸਕਦਾ ਹੈ। AI ਪਰਿਵਰਤਨ ਲਿਖਣ ਨੂੰ ਤੇਜ਼ ਕਰਦਾ ਹੈ, ਪਰ ਸੁਰਖਿਆ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ — idempotency, ਪ੍ਰਮਾਣਿਕਤਾ, ਅਤੇ ਇੱਕ ਕਾਪੀ 'ਤੇ ਡ੍ਰਾਈ-ਰਨ — ਅਲੋਚਨੀ ਅਤੇ ਗੈਰ-ਸਲਾਹਮੁਕਤ ਹਨ। ਤਿਆਰ ਕੀਤੀ ਸਕ੍ਰਿਪਟ ਨੂੰ ਇੱਕ ਡ੍ਰਾਫਟ ਵਜੋਂ ਵਿਵਹਾਰ ਕਰੋ ਜਿਸ ਨੂੰ ਤੁਹਾਨੂੰ ਪੜ੍ਹਨਾ ਅਤੇ ਜ਼ਾਂਚ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ, ਕਦੇ ਵੀ ਕਾਸਤ ਡਾਟਾ ਦੇ ਵਿਰੁੱਧ ਅੰਨ੍ਹੇ ਰੂਪ ਵਿੱਚ ਚਲਾਉਣ ਲਈ ਨਹੀਂ।
ਵਿਸਤ੍ਰਿਤ ਜਵਾਬਾਂ ਨਾਲ IT ਇੰਟਰਵਿਊ ਸਵਾਲਾਂ ਦੀ ਇੱਕ ਲਾਇਬ੍ਰੇਰੀ — ਜੂਨੀਅਰ ਤੋਂ ਸੀਨੀਅਰ ਤੱਕ।
ਦਾਨ ਕਰੋ