在MySQL中,我正在尝试编写一个执行以下操作的存储过程:
我原本以为我可以将步骤1中的两条信息存储到一个变量中,然后将它们传递给第2步。经过一些阅读后,似乎MySQL中的变量只能容纳1个数据。如何将步骤1中的2条信息导入步骤2中的INSERT语句?
谢谢!
答案 0 :(得分:2)
您可以使用INSERT INTO ... SELECT。 例如,
INSERT INTO table1
SELECT col1,
col2,
value1,
value2
FROM table2
在此处,您从col1
选择col2
,table2
,并在结果集中添加2个新的自定义值value1
和value2
。这4个新列将插入table1
答案 1 :(得分:1)
您可以使用SELECT ... INTO子句,它将从指定的表中选择值到您在存储过程中定义的变量。
请参阅手册:http://dev.mysql.com/doc/refman/5.0/en/select-into.html
答案 2 :(得分:0)
创建这样的东西:
CREATE PROCEDURE InsertThis(IN paramA varchar(50), IN paramB int, INT paramC varchar(50))
BEGIN
INTO INTO tableB(fieldA, fieldB, fieldC, fieldD)
SELECT paramA as fieldA, paramB as fieldB, fieldC, fieldD
FROM tableA
WHERE fieldC = paramC;
END