`

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创建存储过程

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

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

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

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

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

    mysql存储过程教程

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

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

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

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

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

    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分页存储过程

    存储过程首先构造一个包含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语句是指通过一定的机制,让预定义的...

    SQL创建存储过程[横向显示列的数据]

    动态SQL允许我们在运行时构建和执行SQL语句,这在处理不确定数量或未知列名的情况下特别有用。例如,如果我们有一个表,其列名根据某个条件动态变化,我们可以使用以下步骤创建存储过程: 1. 获取表的所有列名。 2....

    mysql存储过程——用于数据库的备份与还原

    MySQL存储过程是数据库管理系统中的一种重要功能,它允许程序员或数据库管理员预编译一系列SQL语句,形成一个可重用的程序单元。在本场景中,我们关注的是如何利用存储过程进行数据库的备份与还原,这在数据管理中至...

Global site tag (gtag.js) - Google Analytics