`

MySQL 创建存储过程执行动态SQL

 
阅读更多

第一次使用mysql数据库创建存储过程 折腾了一番。

呵呵,不过还是挺值得的,折腾出来了,贴出来供大家看看。

 

 

写这个存储过程的目的是这样的, 我想通过执行此存储过程传递一个表的名称,然后它就能自动的统计出来表中第一列中的最大值。

 

#删除存储过程;
DROP PROCEDURE genBillsNoProc;

#创建存储过程;
DELIMITER $$ 
CREATE PROCEDURE genBillsNoProc(IN tableName VARCHAR(30),OUT data_t VARCHAR(100))
BEGIN 
DECLARE sql_1 VARCHAR(1000); 
DECLARE sql_2 VARCHAR(1000); 

SET sql_1  =  CONCAT("SELECT COLUMN_NAME into @colName FROM information_schema.COLUMNS WHERE table_name='",tableName,"' limit 0,1");
#执行sql_1SQL语句;
SET @frist_sql=sql_1; 
PREPARE stmt FROM @frist_sql; 
EXECUTE stmt; 

SET sql_2 = CONCAT("select max(",@colName,") into @sql_result from ",tableName);
#执行sql_2SQL语句;
SET @second_sql=sql_2; 
PREPARE stmt1 FROM @second_sql; 
EXECUTE stmt1; 

#设置返回结果;
SET data_t := @sql_result; 
END$$ 

 

下面是调用存储过程:

##执行存储过程 
CALL genBillsNoProc('t_dept',@data_t); 
SELECT @data_t maxValue;

 

执行结果:

maxValue;
104

分享到:
评论

相关推荐

    MySQL 存储过程中执行动态SQL语句的方法

    以下将详细解释如何在MySQL存储过程中执行动态SQL语句。 首先,我们来看一个简单的例子: ```sql DROP PROCEDURE IF EXISTS my_procedure; CREATE PROCEDURE my_procedure() BEGIN DECLARE my_sql VARCHAR(500); ...

    mysql创建存储过程实现往数据表中新增字段的方法分析

    本篇文章将详细解析如何创建存储过程以实现在数据表中动态新增字段的功能。 首先,我们来理解基本的存储过程创建语法。在MySQL中,`DELIMITER`命令用于更改分隔符,使得我们可以定义存储过程中的结束符号。例如,...

    mysql 查询存储过程的 sql 语句.docx

    创建存储过程需要用到 `CREATE PROCEDURE` 语句。以下是一个简单的示例: ```sql CREATE PROCEDURE GetCustomerOrders ( IN customerId INT ) BEGIN -- SQL 语句 SELECT * FROM orders WHERE customer_id = ...

    MySQL实现创建存储过程并循环添加记录的方法

    在MySQL数据库中,存储过程是一种预编译的SQL语句集合,它可以封装一系列的操作,用于执行复杂的业务逻辑。创建存储过程并循环添加记录是数据库管理中的常见任务,尤其是在需要批量插入数据时。以下将详细解释如何在...

    mysql创建存储过程

    ### MySQL 创建存储过程详解 #### 一、存储程序概述 **存储程序**是可以在MySQL服务器中定义并存储的一组SQL语句。它们的功能类似于过程化的编程语言中的函数或过程,可以封装复杂的逻辑,并且能够在数据库层面...

    MySQL存储过程中实现执行动态SQL语句的方法

    以下是一个实例,展示了如何在MySQL存储过程中实现执行动态SQL语句的方法: 首先,我们创建一个名为`set_col_value`的存储过程,它接受四个输入参数: 1. `in_table`:表示要更新的表名。 2. `in_column`:表示要...

    mysql存储过程教程

    在MySQL中,可以使用`CREATE PROCEDURE`语句来创建存储过程。例如,以下是一个简单的存储过程,用于计算两个数字的和: ```sql CREATE PROCEDURE addNumbers(IN num1 INT, IN num2 INT, OUT result INT) BEGIN SET...

    mysql 查询存储过程的 sql 语句.7z

    创建存储过程需要使用 CREATE PROCEDURE 语句。以下是一个创建存储过程的示例: CREATE PROCEDURE GetCustomerOrders ( IN customerId INT ) CALL GetCustomerOrders(1234); 存储过程中使用变量: 可以在...

    Java实现调用MySQL存储过程详解

    你可以使用MySQL命令行客户端或者可视化工具(如MySQL Workbench)来查看和创建存储过程。 要从Java程序中调用这些存储过程,你需要遵循以下步骤: 1. **导入必要的库**:在Java源文件中,导入JDBC相关的库,通常...

    MySQL存储过程的异常处理方法

    首先,我们注意到在创建存储过程`myProc`时,使用了`delimiter $$`来改变MySQL客户端的语句分隔符,这是为了在存储过程中使用多个分号(;)而不会导致命令提前结束。存储过程的定义如下: ```sql CREATE PROCEDURE ...

    使用MYSQL5创建存储过程procedure

    在循环中,我们动态构建并执行SQL语句,为每个年份创建一个新的子表。 最后,文件列表中的`tour.sql`可能包含了对旅游业务数据的操作,`sp_create.sql`可能是创建其他存储过程的脚本,而`sp_div_schema.sql`可能...

    mysql存储过程动态创建多列

    此时,存储过程就展现出了它的强大能力,它允许我们通过编程的方式动态生成并执行SQL语句,从而实现动态创建多列的功能。 #### 动态创建列的实现 下面的示例代码展示了如何在MySQL存储过程中动态创建多列: ```...

    MySQL存储过程经典教程

    创建存储过程涉及`CREATE PROCEDURE`语句,需要指定过程名、参数(如果有的话)以及包含的SQL语句。例如: ```sql CREATE PROCEDURE ProcName(IN param1 INT, OUT param2 VARCHAR(50)) BEGIN SELECT column1 ...

    MySQL存储过程综述及如何使用Navicat创建存储过程

      在大型项目中,有时候需要重复执行能够完成特定功能的SQL语句集,而MySQL为我们提供了存储过程的概念,存储过程是数据库中的一个重要对象,它是存储在数据库中的一组完成特定功能的SQL语句集。它第一次编译后,...

    MYSQL分页存储过程

    存储过程首先构造一个包含LIMIT子句的新SQL语句,然后使用`PREPARE`语句准备这个动态SQL,接着设置偏移量`@s`为`(total - 1) * 20`,执行动态SQL,并最后释放预处理语句资源。 #### 使用存储过程 调用此存储过程时...

    MySQL数据库:存储过程的创建1.pptx

    创建存储过程1 课程目标 1)了解 ——存储过程的优点; 2)理解 —— 存储过程的概念; 3)掌握 —— 存储过程的创建方法; 存储过程优点 使用存储过程的优点有: (1)存储过程在服务器端运行,执行速度快。 (2)...

    创建存储过程.rar

    在主流的数据库系统中,如MySQL、SQL Server和Oracle,创建存储过程的语法有所不同,但基本结构类似: 1. MySQL: ```sql CREATE PROCEDURE proc_name([IN|OUT|INOUT] param1 datatype, ...) BEGIN -- SQL语句 END;...

    自动执行SQL语句&创建标准的Sql 存储过程

    在SQL数据库管理中,自动执行SQL语句和创建标准的SQL存储过程是两个重要的操作,它们对于数据库管理和数据处理有着深远的影响。以下是这两个主题的详细解释: 首先,自动执行SQL语句是指通过一定的机制,让预定义的...

Global site tag (gtag.js) - Google Analytics