自定义CSV导入Mysql

时间:2011-10-29 19:00:16

标签: mysql csv import

我正在尝试将一些csv数据导入mysql。问题是csv字段和数据库字段之间没有精确的一对一映射。我正在寻找一种简单的方法将数据导入到所需的字段中。我想导入一些字段而不是其他字段。其中一个字段我想为所有情况分配一个“2”以匹配查找值。

我可以买一个工具,但我不想花这笔钱。我可以使用我的import命令执行此操作而无需编辑csv文件吗?任何例子或建议将不胜感激。

---------- desc addrTable; ------------------

+-------------+--------------+------+-----+---------+----------------+
| Field       | Type         | Null | Key | Default | Extra          |
+-------------+--------------+------+-----+---------+----------------+
| id          | int(11)      | NO   | PRI | NULL    | auto_increment |
| supervisor  | int(11)      | NO   | MUL | NULL    |                |
| lastName    | varchar(20)  | NO   |     | NULL    |                |
| firstName   | varchar(20)  | NO   |     | NULL    |                |
| fullName    | varchar(40)  | NO   |     | NULL    |                |
| addr1       | varchar(50)  | NO   |     | NULL    |                |
| addr2       | varchar(50)  | NO   |     | NULL    |                |
| city        | varchar(25)  | NO   |     | NULL    |                |
| state       | varchar(2)   | NO   |     | NULL    |                |
| zipCode     | varchar(8)   | NO   |     | NULL    |                |
| notes       | longtext     | YES  |     | NULL    |                |
| spouse      | varchar(30)  | NO   |     | NULL    |                |
| gender      | varchar(1)   | NO   |     | NULL    |                |
| kids        | int(11)      | NO   |     | NULL    |                |
| birthday    | varchar(20)  | NO   |     | NULL    |                |
| spouseDOB   | date         | YES  |     | NULL    |                |
| email       | varchar(75)  | NO   |     | NULL    |                |
| workPhone   | varchar(12)  | NO   |     | NULL    |                |
| cellPhone   | varchar(12)  | NO   |     | NULL    |                |
+-------------+--------------+------+-----+---------+----------------+

---------- csv headers ------------------

以下是我的CSV标头。请注意,其中一些标题没有值'*'d',我想跳过这些字段?此外,没有主管领域。这是一个查找,我想为每个导入的记录分配值'2'。

"Last_Name",
"First_Name",
"Full_Name",
"Address",
"City",
"State",
"Zip",
"Notes",
"Spouse",
"Kids",
"Birthday",
"Birthday_Day", *
"Birthday_Month", *
"Spouse_DOB",
"Email",
"Work_Phone",
"Cell_Phone"

1 个答案:

答案 0 :(得分:0)

我会使用mysqlimport将数据加载到临时表中....然后从临时表中选择进入目标。这样你就可以添加缺失的列。

e.g:

insert into t2
select last_name,first_name, etc,2 as supervisorid
from t1