如何在存储过程中使用已准备语句?


如果我们想要在存储过程中使用准备好的语句,则必须在 BEGIN 和 END 块内编写。为了理解它,我们通过一个例子来说明,利用这个例子,我们可以通过将表的名称作为存储过程的参数传递来获取表中的所有记录。

示例

mysql> DELIMITER //
mysql> Create procedure tbl_detail(tab_name Varchar(40))
    -> BEGIN
    -> SET @A:= CONCAT('Select * from',' ',tab_name);
    -> Prepare stmt FROM @A;
    -> EXECUTE stmt;
    -> END //
Query OK, 0 rows affected (0.00 sec)

现在,通过给出表的名称作为其参数来调用此过程,它将显示该表的所有记录。

mysql> DELIMITER;
mysql> CALL tbl_detail('Student’);
+------+--------+
| Id   | Name   |
+------+--------+
|    1 | Ram    |
|    2 | Shyam  |
|    3 | Gaurav |
+------+--------+
3 rows in set (0.00 sec)
Query OK, 0 rows affected (0.03 sec)

更新时间:2020 年 6 月 22 日

1K+ 浏览量

开始您的 职业生涯

通过完成课程获得认证

立即开始
广告
© . All rights reserved.