Я хочу хранить данные, возвращенные из хранимой процедуры, в таблицу. Я пробовал это.Вставить в таблицу в качестве возврата данных из хранимой процедуры
insert into table1 call sp_test();
но это не удается.
как это сделать?
Я хочу хранить данные, возвращенные из хранимой процедуры, в таблицу. Я пробовал это.Вставить в таблицу в качестве возврата данных из хранимой процедуры
insert into table1 call sp_test();
но это не удается.
как это сделать?
Попробуйте
call sp_test(@var)
insert into table1 (select @var);
И в процедуре есть Шоуда быть из переменной в качестве аргументов
Это начало установки ht answer: вы не можете перенаправить или использовать «выход» хранимых процедур. Ответ будет лучше дополнен тем, как должна выглядеть внутренняя часть хранимой процедуры. – snooze92
Если он возвращает данные, это stored function, not a stored procedure. В этом случае вы не используете CALL
, а просто использовать его в INSERT … SELECT
заявлении, как это:
INSERT INTO table1 SELECT sp_test()
не является хранимой процедурой –
Затем у нее должны быть параметры, чтобы возвращать что-либо через них, а ваш пример не указывал. В противном случае результат ваших запросов внутри SP будет потерян после возвращения процедуры. – MvG
для function
использования select
insert into table1 select sp_test();
my sp возвращает более одной строки, а функция возвращает только одно значение –
возможно дубликат [MySQL Как INSERT INTO \ [temp table \] FROM \ [Хранимая процедура \]] (http://stackoverflow.com/questions/687102/mysql-how-to-insert-into-temp-table-from-stored-procedure) –