如何在存储过程中调用多个列

时间:2012-02-08 04:54:39

标签: mysql stored-procedures

我是存储过程的新手,我不太了解。 我正在测试一个例子。你可以帮帮我吗? 这是我的存储过程

  

DELIMITER $$

     

DROP PROCEDURE IF EXISTS dictionarytable $$

     

CREATE PROCEDURE dictionarytable(id VARCHAR(20),name   VARCHAR(20),工作VARCHAR(20),放置VARCHAR(20),mobileno   VARCHAR(20),自行车VARCHAR(20),汽车VARCHAR(20),homeno   VARCHAR(20),dictionaytype VARCHAR(20),意思是VARCHAR(20),句子   VARCHAR(20),反义词VARCHAR(20),同义词VARCHAR(20))

     

BEGIN

     

选择   ID,姓名,工作地点,mobileno,自行车,汽车,homeno,dictionaytype,义,例句,反义词,同义词   来自字典INTO dictionarytable;结束$$

DELIMITER; 我希望在存储过程字典表中调用字典(表)中的id,name,13列 如果您指定查询以显示所有13列

,那么Begin中的查询是错误的

1 个答案:

答案 0 :(得分:1)

您不能将字段值传递给INTO过程,您可以将它们传递给INTO用户变量,声明变量或OUT参数。请注意,使用INTO子句时只能传递一条记录。例如:

SET @var1 = NULL;
SELECT column1 INTO @var1 FROM table;

如果要复制多条记录,则可以使用INSERT INTO...SELECT语句将数据集复制到第二个表。例如:

INSERT INTO table2 SELECT column1 FROM table;

此外,如果您想使用变量或参数作为标识符(在您的情况下为字段名称),那么您应该使用prepared statements