将Excel数据导入MySQL的关系表

时间:2014-08-19 08:55:50

标签: mysql sql excel stored-procedures import

我的excel工作簿有三个工作表。每个工作表包含我的sql数据库的3个单独表的数据。

表1 :Client_master :Id,Client_Name

表2 :compaign_master :Id,compign_Name

表3 :raw_data :id,date,client_id,compaign_id,views,clicks。

通过使用下面的代码,我将excel数据插入到mysql表中。

use analyticsdata;
DROP TABLE IF EXISTS excel_table;
CREATE temporary TABLE excel_table (
  id int,
  client_name VARCHAR(255)
) DEFAULT CHARSET utf8;

LOAD DATA LOCAL INFILE 'C:/Users/puttaraju.d/Documents/data.csv' 
INTO TABLE excel_table 
CHARACTER SET utf8
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 
LINES TERMINATED BY '\n' 
IGNORE 1 LINES;

INSERT INTO client_master 
  SELECT id, client_name 
    FROM excel_table 
   ORDER BY id;

如何读取和插入表2和表3中的数据到其他表。

1 个答案:

答案 0 :(得分:1)

在我看来,你有3个选项(2个需要插件):

  1. 安装Excel MySQL插件http://www.mysql.com/why-mysql/windows/excel/

  2. 安装MySQL UDF插件http://www.mysqludf.org/编写一个shell脚本,用于将Excel文件转换为单独的csv文件(例如运行Excel宏)并使用 " sys_exec" SQL命令

  3. 将所有三个表加入一个CSV。然后将文件上传到临时表(例如,使用varchar列)并将其分隔在列标题上。