use skysql
delimiter $$
drop procedure if exists LoadData $$
CREATE PROCEDURE LoadData (IN File VARCHAR(100),IN TableName VARCHAR(100))
BEGIN SET @Cmd =CONCAT("LOAD DATA INFILE ",File," INTO TABLE ",TableName," FIELDS TERMINATED BY ',' LINES TERMINATED BY ';';");
SELECT @Cmd;
PREPARE stmt FROM @Cmd;
EXECUTE stmt;
END;
$$
delimiter ;上面这个代码,报警
this command is not supported in the prepared statement protocol yet.这条路不行,我该怎么实现我想要的功能?
delimiter $$
drop procedure if exists LoadData $$
CREATE PROCEDURE LoadData (IN File VARCHAR(100),IN TableName VARCHAR(100))
BEGIN SET @Cmd =CONCAT("LOAD DATA INFILE ",File," INTO TABLE ",TableName," FIELDS TERMINATED BY ',' LINES TERMINATED BY ';';");
SELECT @Cmd;
PREPARE stmt FROM @Cmd;
EXECUTE stmt;
END;
$$
delimiter ;上面这个代码,报警
this command is not supported in the prepared statement protocol yet.这条路不行,我该怎么实现我想要的功能?
原因:必须有FILE权限,不安全。
mysqlimport是load data infile 的命令行模式!至于表名和文件名你应该搞成一样的先,然后再考虑否和你的要求!
我是多个文件导入到一个表,不能用mysqlimport萨。看来只能直接用load data infile了
那你就建多个相同的表,导入后,再执行 insert ... select ...不就可以了。
多看看这个.
解决的办法是:
在Linux里运行mysql -u -p --local-infile=1