Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Excel数据导入MySQL的关系表_Mysql_Sql_Excel_Stored Procedures_Import - Fatal编程技术网

将Excel数据导入MySQL的关系表

将Excel数据导入MySQL的关系表,mysql,sql,excel,stored-procedures,import,Mysql,Sql,Excel,Stored Procedures,Import,我的excel工作簿有三个工作表。每个工作表包含我的sql数据库中3个单独表的数据 表1:客户端\u主机 列:Id、客户端名称 表2:compaign\u master 列:Id、公司名称 表3:原始数据 列:id、日期、客户id、公司id、视图、单击 通过使用下面的代码,我将excel数据插入到mysql表中 use analyticsdata; DROP TABLE IF EXISTS excel_table; CREATE temporary TABLE excel_table ( i

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

表1:客户端\u主机 :Id、客户端名称

表2:compaign\u master :Id、公司名称

表3:原始数据 :id、日期、客户id、公司id、视图、单击

通过使用下面的代码,我将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中的数据并将其插入其他表中

我认为您有3个选项(2个需要插件):

  • 安装ExcelMySQL插件

  • 安装MySQL UDF插件编写一个shell脚本,用于将Excel文件转换为单独的csv文件(例如,运行Excel宏),并使用 “sys_exec”SQL命令

  • 将所有三个表合并为一个CSV。然后将文件上载到临时表(例如,带有varchar列),并在列标题中将它们分开


  • 有一个名为“mysql for excel”的插件。你试过了吗?@JayNirgudkar:我必须使用存储过程来完成。这是我的要求。不幸的是,.csv格式不支持Excel的多个工作表。您需要将每张工作表保存到各自的.csv文件中,然后逐个导入。或者,您可以将图纸合并为一个,然后将其另存为.csv文件并导入。您的意思是说我无法访问excel工作簿中的单个工作表。非常感谢。根据我的知识,我将选择选项3,不提供您不能使用的其他软件。谢谢。我将使用选项3实用程序比Excel for MySQL插件要好得多,但是该插件是免费的。