繁体   English   中英

MySQL存储过程变量

[英]MySQL Stored Procedure variables

在MySQL中,我正在尝试编写一个存储过程,它执行以下操作:

  1. 运行SELECT查询,返回1行,包含2列(因此有两条信息)。
  2. 运行INSERT查询,该查询包括返回的前两个值以及传递给存储过程的一些参数。

我原本以为我可以将第1步中的两条信息存储到一个变量中,然后将它们传递给第2步。经过一些阅读后,似乎MySQL中的变量只能容纳1个数据。 如何将步骤1中的2条信息导入步骤2中的INSERT语句?

谢谢!

您可以使用INSERT INTO ... SELECT 例,

INSERT INTO table1 
SELECT col1, 
       col2, 
       value1, 
       value2 
FROM   table2 

在这里,您从table2选择col1col2 ,并将2个新的自定义值value1value2到结果集中。 这个新的4列插入到table1

您可以使用SELECT ... INTO子句,它将从指定的表中选择值到您在存储过程中定义的变量。

请参阅手册: http//dev.mysql.com/doc/refman/5.0/en/select-into.html

创建这样的东西:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM