1. I found a website that has a CSV-to-SQL utility. Halfway down the page you'll see a form where you can upload a CSV file and it will display corresponding SQL statements, both to create the table and to populate it with the data.
http://www.sqldbu.com/eng/sections/tips/normalize.html
2. Since my files were too large for the web form, I used "head -n 100 largefile.csv > smallfile.csv" to create smaller files with enough data that the column types would be generated correctly.
3. I then executed just the CREATE TABLE statements and populated the tables with LOAD DATA INFILE:
LOAD DATA LOCAL INFILE 'largefile.csv' INTO TABLE `abc` FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"';
Thanks to the owner of the website (Antje Binas-Holz) for the free CSV-to-SQL utility!
Richard
Begin forwarded message:
From: Richard Miller <[EMAIL PROTECTED]> Date: April 5, 2005 6:17:34 PM MDT To: Mysql <mysql@lists.mysql.com> Subject: CSV-to-SQL?
I have a dozen, very large CSV files that I would like to put into a MySQL database, with 1 table per file. Does anyone know of a PHP (or other) script that can read the first few lines of a CSV file and create an appropriate CREATE TABLE statement based on the data it finds? (Even better, it could import the file afterwards!) I'm not picky about data types here; I'd simply like to get this data into tables so I can work with it more easily.
Thanks, Richard Miller
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]
-- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]