菜鸟提问:mysql 存储过程返回数据集怎么写啊?

zhangning_125 2009-04-22 05:47:12
同上,谢谢了。本人刚刚学习,请高人指点一下。举个例子。
...全文
969 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
WWWWA 2009-04-23
  • 打赏
  • 举报
回复
SP可以返回记录集,在VFP、DELPHI中测试,均可得到
zhangning_125 2009-04-23
  • 打赏
  • 举报
回复
谢谢了
zhangning_125 2009-04-23
  • 打赏
  • 举报
回复
原来不能返回结果集啊,只能插入临时表再取出来啊
wwwwb 2009-04-23
  • 打赏
  • 举报
回复
SP可以返回记录集,也可以用生成临时表的方法
ACMAIN_CHM 2009-04-22
  • 打赏
  • 举报
回复

mysql> delimiter //
mysql>
mysql> CREATE PROCEDURE simpleproc (IN myId INT)
-> BEGIN
-> CREATE TEMPORARY TABLE tmpMyTbl LIKE t2;
-> insert into tmpMyTbl
-> select * from t2 where id<myId;
-> END;
-> //
Query OK, 0 rows affected (0.09 sec)

mysql>
mysql> delimiter ;
mysql> call simpleproc(10);
Query OK, 9 rows affected (0.13 sec)

mysql> select * from tmpMyTbl;
+----+------+
| id | col |
+----+------+
| 1 | 2 |
| 2 | 4 |
| 3 | 6 |
| 4 | 8 |
| 5 | 10 |
| 6 | 12 |
| 7 | 14 |
| 8 | 16 |
| 9 | 18 |
+----+------+
9 rows in set (0.00 sec)

mysql>



TEMPORARY 表在connection 断开后会自动被删除,是session级的。
liangCK 2009-04-22
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ACMAIN_CHM 的回复:]
很不幸的时,MySQL的函数,目前还不支持记录集的返回。无法返回一个记录集。 一般是生成一个指定的临时表。
[/Quote]

ACMAIN_CHM 2009-04-22
  • 打赏
  • 举报
回复

很不幸的时,MySQL的函数,目前还不支持记录集的返回。无法返回一个记录集。 一般是生成一个指定的临时表。
liangCK 2009-04-22
  • 打赏
  • 举报
回复
DELIMITER $$

CREATE PROCEDURE p_result()
BEGIN
SELECT * FROM tb;
END$$
DELIMITER ;

------------------
CALL p_result();

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧