2014-10-13 5 views
2

Я использую MySQL, и пытается создать хранимую процедуру , что получить CSV-файл (с 2 колонками - ID & Имя) , удалить таблицу person_table и создать с помощью CSV содержание.загрузки данных в хранимых процедур (MySQL)

Это код:

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 ; 

, к сожалению, я получаю сообщение об ошибке: 'LOAD DATA не допускается в хранимых процедурах'

что я могу сделать?

спасибо !!

ответ

1

Вы можете позвонить в load команду после хранимой процедуры:

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

Привет спасибо! , но мне нужно, чтобы он исполнялся в SP. –

+0

Из-за политики MySQL нет возможности: «ЗАГРУЗИТЬ ДАННЫЕ не разрешены в хранимых процедурах» –

+0

Речь идет о безопасности –