我正在尝试将一些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"
答案 0 :(得分:0)
我会使用mysqlimport将数据加载到临时表中....然后从临时表中选择进入目标。这样你就可以添加缺失的列。
e.g:
insert into t2
select last_name,first_name, etc,2 as supervisorid
from t1