mysql存储过程中使用动态SQL

surprise 同时被 2 个专栏收录
714 篇文章 24 订阅 ¥99.90 ¥99.00
18 篇文章 1 订阅

1.简介

 

mysql存储过程可以使用预编译语句的方式来使用动态SQL,主要就是将SQL字符串预编译为statement,然后执行次语句:

    SET @sql = sql

    PREPARE stmt_name FROM @sql;

    EXECUTE stmt_name;

    {DEALLOCATE | DROP} PREPARE stmt_name;
  • SET @sql:设置SQL字符串变量,一般为用户变量,即前面带有@的变量
  • PREPARE stmt_name FROM @sql:预编译SQL字符串为语句
  • EXECUTE stmt_name:执行预编译后的语句
  • DEALLOCATE PREPARE stmt_name:释放预编译后的语句,释放资源,也可以使用DROP

 

2.简单示例

 

CREATE DEFINER=`root`@`localhost` PROCEDURE `dynamic_sql_test`()
BEGIN
	
    set @sql = "SELECT user.id, user.username, user.birthday FROM user;";
    prepare statement_user_select_all from @sql;
    execute statement_user_select_all;
    deallocate prepare statement_user_select_all;
	
END
<
评论 4 您还未登录,请先 登录 后发表或查看评论
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值