mysql存储过程prepare_MySQL数据库存储过程动态表建立(PREPARE)
PREPARE statement_name FROM sql_text /*定义*/
EXECUTE statement_name [USING variable [,variable...]] /*运行预处理语句*/
DEALLOCATE PREPARE statement_name /*删除定义*/
这是我项目其中用到的,用作參考使用:
DELIMITER $$
DROP PROCEDURE IF EXISTS `gpsdata`.`sp_test`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_test`(
gpstime_ varchar(128),
gpsname_ varchar(128),
gpsinfo_ varchar(256)
)
BEGIN
DECLARE tbname varchar(50) DEFAULT '0';
DECLARE v_sql varchar(1024) DEFAULT '0';
SET v_sql=CONCAT('select * from ', tbname ,' where gpsname = ',gpsname_,' order by gpstime desc limit 1');
SET @lastdata = v_sql;
PREPARE lastdata FROM @lastdata;
EXECUTE lastdata;
DEALLOCATE PREPARE lastdata;
select v_sql;
END$$
DELIMITER ;
使用 PREPARE 的几个注意点:
A: PREPARE stmt_name FROM preparable_stmt;
提前定义一个语句,并将它赋给 stmt_name ,stmt_name 是不区分大写和小写的。
B: 即使 preparable_stmt 语句中的 ? 所代表的是一个字符串,你也不须要将 ? 用引號包括起来。
C: 假设新的 PREPARE 语句使用了一个已存在的 stmt_name ,那么原有的将被马上释放!
即使这个新的 PREPARE 语句由于错误而不能被正确运行。
D: PREPARE stmt_name 的作用域是当前client连接会话可见。
E: 要释放一个提前定义语句的资源,能够使用 DEALLOCATE PREPARE 句法。
F: EXECUTE stmt_name 句法中,假设 stmt_name 不存在。将会引发一个错误。
G: 假设在终止client连接会话时。没有显式地调用 DEALLOCATE PREPARE 句法释放资源,server端会自己动释放它。
H:在提前定义语句中。CREATE TABLE, DELETE, DO, INSERT, REPLACE, SELECT, SET, UPDATE, 和大部分的 SHOW 句法被支持。
I:PREPARE 语句不能够用于存储过程(5.0以上能够使用),自己定义函数!
但从 MySQL 5.0.13 開始,它能够被用于存储过程,仍不支持在函数中使用!
mysql存储过程prepare_MySQL数据库存储过程动态表建立(PREPARE)相关推荐
- MySQL数据库存储过程动态表建立(PREPARE)
PREPARE statement_name FROM sql_text /*定义*/ EXECUTE statement_name [USING variable [,variable...]] / ...
- mysql数据库特征_如何掌握MySQL数据库中动态表的特征
以下的文章主要介绍的是如何正确掌握MySQL数据库中动态表的特征,可以说动态表在MySQL数据库中使用频率还是很大的,所以MySQL数据库中动态表的掌握也是一件很重要的事情,以下就是文章的具体内容. ...
- mysql event scheduler机制 与 动态表名创建
mysql event scheduler机制 与 动态表名创建 今天有一个需求,需要定时在mysql创建表与删除表,以及根据日期命名表名.诚然,通过外部程序很容易实现与控制这一切. 但是需要额外的服 ...
- B-Tree/B+-Tree/二叉树/红黑树/Hash表/MySQL底层到底用哪个数据表建立索引做快速查找?
B-Tree/B+-Tree/二叉树/红黑树/Hash表/MySQL底层到底用哪个数据表建立索引做快速查找? ~~B-Tree~~ ==B+Tree== ~~二叉树(Binary Search Tre ...
- MySQL设计工厂管理数据库(Ⅰ)—表结构设计
MySQL设计工厂管理数据库(Ⅰ)-表结构设计 引言 设计思路 工厂管理E-R图 设计工厂管理逻辑图 实现过程 项目(project)表实现 职工(staff)表设计 零件(components)表设 ...
- mysql建立修改表存储过程_MySQL数据库创建、表的创建、存储过程、触发器
一.基本内容 (1) 使用SQL语句创建数据库: (2) 为数据库分配管理权限: (3) 定义表和数据库的完整性,student(学生表),course(课程表)和 sc(学生选课表), 并设置各个表 ...
- mysql 动态创建事件_mysql 通过事件定时为数据库创建动态表名
#检测事件是否开启 show variables like 'event_scheduler'; #开启事件(最好在my.init设置,因为重启后还会变回默认值OFF) set global even ...
- mysql怎么写数据存储过程_数据库存储过程要怎么写
SQL语句需要先编译然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数) ...
- MySQL:创建数据库,数据表,主键和外键
目录 前言: 安装MySQL: 打开MySQL: 创建数据库: 查看已建数据库: 查看数据库引擎: 创建数据表: 主键约束: 单字段主键: 多字段联合主键: 外键约束: 前言: MySQL数据库安装了 ...
最新文章
- CUDA Samples: Dot Product
- Ubuntu 17.04 编译安装 Nginx 1.9.9 配置 https 免费证书
- Ubuntu 无界面使用selenium chrome + headless
- 抽象类可以有构造函数吗
- O/R Mapping 研究报告(转)
- jQuery:localStorage用法
- 解决IntelliJ IDEA报错Failed to read candidate component class: file [ ]; nested exception is org.
- 如何使用Angular rxjs进行优雅限流
- oracle 转换成csv文件,如何将csv转换为oracle中的表
- rust腐蚀怎么单人游戏_腐蚀游戏怎么提高帧数 Rust设置隐藏画质提高FPS教程
- python通过内置函数测试对象类型_Python的内置函数
- 手机内存8+128与6+256价格相同,你会选哪个?
- 轻松修改Mac地址的中文版工具:WiFiSpoof for Mac
- 修改hadoop配饰文件文件后导致hive无法找到原有的dfs文件
- 直流电机PID控制源码c语言,51单片机PID+PWM直流电机转速闭环控制源码(12864液晶显示)...
- 两台没有网络的计算机如何共享文件,两台电脑共享文件,教您两台电脑如何共享文件...
- (九)ThunderbirdMail配置QQ邮件服务
- 阿里Leader都干些啥
- protobuf中repeated类型变量与C++ vector类型变量的相互赋值方法
- 招行数据岗笔试题- 信用卡推荐客户列表
热门文章
- php中编码转换,php编码转换_php编码转换函数
- 【文档学习】tensorboardX——summary writer
- 计算机上面的字母代表什么意思,显卡前后字母代表什么意思?
- 房地产年终奖丰厚,移动互联网功不可没
- 精益六西格玛的营运改良案例 -- 优思学院
- 关于网站开发中的欢迎页面
- windows-世界之窗_Flash-Player版本更新
- Django项目使用wangeditor方法
- 基于Android平台的记事本软件(Android Studio项目+报告+app文件)
- 《网页设计基础——HTML注释与CSS注释》