SELECT * FROM 'flights.csv';
SELECT * FROM 'todos.json';
COPY (SELECT *
FROM read_csv('./output.csv',AUTO_DETECT=TRUE))
TO './output.parquet' (FORMAT 'PARQUET', CODEC 'ZSTD');
import duckdb
import mysql.connector
# Step 1: Connect to DuckDB
duckdb_con = duckdb.connect(database=':memory:') # Use an in-memory database or specify a file
# Step 2: Connect to MySQL
mysql_con = mysql.connector.connect(
host='',
user='',
password='',
database=''
)
mysql_cursor = mysql_con.cursor()
# Step 3: Read CSV and insert data into MySQL
csv_file_path = './output.csv'
# Using DuckDB to read and insert directly
insert_query = "INSERT INTO _account (address) VALUES (%s)" # Use %s for MySQL parameterization
# Execute the DuckDB query and fetch all results
rows = duckdb_con.execute(f"SELECT addr FROM read_csv_auto('{csv_file_path}');").fetchall()
# Insert each row into MySQL
for row in rows:
print(row[0])
mysql_cursor.execute(insert_query, (row[0],)) # row is a tuple, so we need to specify the first element
# Commit changes and close connections
mysql_con.commit()
mysql_cursor.close()
mysql_con.close()
duckdb_con.close()
Ref: