我正在使用MySQL, 并尝试创建存储过程 获取CSV文件(包含2列 - ID和名称) ,删除表person_table和 使用CSV内容创建它。
这是代码:
DELIMITER $$
drop procedure if exists load_persons$$
CREATE PROCEDURE load_persons(in file_name varchar(300))
BEGIN
drop table if exists person_table;
CREATE TABLE `person_table` (
`ID` varchar(30) NOT NULL,
`Name` varchar(150) DEFAULT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
LOAD DATA LOCAL INFILE file_name INTO TABLE person_table;
END$$
DELIMITER ;
不幸的是我收到错误:'在存储过程中不允许加载数据'
我该怎么办?
谢谢!
答案 0 :(得分:1)
您可以在存储过程后调用load
命令:
CALL load_persons(...);
-- and then
LOAD DATA LOCAL INFILE your_file_name INTO TABLE person_table;