我正在编写一个存储过程来从表中选择多个值,然后将每个值插入另一个表中的新行以及传递给函数的两个参数。
我能找到的所有文档都显示了如何插入选中的结果,而不是插入与参数一起选择的结果,这是我想知道的语法。
function (a, b)
select c from table
for each result,
insert (a,b,c) into newtable (a,b,c)
在上面的伪代码中,从select语句中检索值c,但a和b的值来自存储过程参数。 select语句可能会返回多个值。
我们在表格中说:
id c
1个苹果
2橙色
3梨
然后我调用存储过程:
procedure(recipe, book)
然后我们会在newtable中看到:
id a b c
1食谱书苹果
2食谱书橙色
3食谱书梨
答案 0 :(得分:3)
好的,我会将其重写为一个程序,以便您理解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');