【问题标题】:Load DATA into Stored Procedure (MySQL)将数据加载到存储过程 (MySQL)
【发布时间】:2014-10-14 00:14:30
【问题描述】:

我正在使用 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 ;

不幸的是,我收到一个错误:'在存储过程中不允许加载数据'

我能做什么?

谢谢!!

【问题讨论】:

    标签: mysql sql stored-procedures


    【解决方案1】:

    存储过程后可以调用load命令:

    CALL load_persons(...);
    -- and then
    LOAD DATA LOCAL INFILE your_file_name INTO TABLE person_table;
    

    【讨论】:

    • 您好,谢谢!但我需要它将执行到 SP 中。
    • 由于 MySQL 策略,不可能:“LOAD DATA is not allowed in stored procedures”
    • 安全问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-17
    • 1970-01-01
    • 2011-12-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多