хранимая процедура mysql для вставки значений из оператора выбора и параметров - PullRequest
3 голосов
/ 26 марта 2012

Я пишу хранимую процедуру для выбора нескольких значений из таблицы, а затем вставляю по одному каждому значению в новую строку в другой таблице вместе с двумя параметрами, которые передаются в функцию.

Вседокументация, которую я могу найти, показывает, как вставить выбранные результаты, а не вставлять выбранные результаты вместе с параметрами, это тот синтаксис, который я хочу знать.

function (a, b)

select c from table
 for each result, 
    insert (a,b,c) into newtable (a,b,c)

В приведенном выше псевдокоде значение c извлекается из selectоператор, но значения a и b взяты из аргументов хранимых процедур.Оператор select может возвращать несколько значений.

Итак, допустим, в таблице мы имеем:

id c 1 яблоко2 оранжевые3 груша

Затем я вызываю хранимую процедуру:

procedure(recipe, book)

, тогда мы увидим в newtable:

id abc 1 книга рецептов яблок2 книга рецептов апельсин3 рецепта книга груша

1 Ответ

3 голосов
/ 26 марта 2012

Хорошо, я перепишу его как процедуру, чтобы вы понимали, a и b не являются значениями из таблицы table:

CREATE PROCEDURE procedure(IN paramA VARCHAR(50), IN paramB VARCHAR(50)) 
     BEGIN 
        INSERT INTO newtable
        SELECT paramA, paramB, c
        FROM table
     END;

Так что, как в вашем примере, вы бы тогдаНазовите это так:

CALL procedure('recipe','book');
...