mysql光标不见了_mysql创建光标失败
展开全部
创建62616964757a686964616fe4b893e5b19e31333365636562存储过程和触发器
1、建表
首先先建两张表(users表和number表),具体设计如下图:
2、存储过程
新建一个函数,用来往users表中插入数据,创建过程如下:
新建函数—(过程)完成--然后插入代码及名字。
保存以后单击运行,可以看到users表中的数据如下:
整个存储过程的编写就完成了,当然这只是一个极为简单的例子,仅供入门参考。
3、触发器
在写触发器之前,我们先把users的数据清空
truncate table users;
现在我们有两个表,我要做的事情就是,当我往users中插入数据后,number中也相应变化:
例如,number表中有一条初始数据,id=1,num=0;
当我往users中插入一条数据后,就触发number表中的num字段就加1,也就是记录用户数。
下面我们来实现这个小小的功能。
右击users表,选择设计表,再选择触发器选项,在定义处写入代码:
begin
update number
set num = (select count(*) from users) ;
end
触发器图示:
保存后,再往users表中添加新数据,再查看一下number中的数据,你会神奇的发现,number表中的数据也变了,自己动手试一下吧!
ps:存储过程需要程序员自己去执行,触发器,顾名思义,自动触发。
4、游标使用
首先我将users表中的数据清空(当然不清空也可以),然后再往里面填充数据,如下图所示:
我现在想做的是将student_ID字段都加上100,通过这个例子简单展示一下游标的使用。
创建一个存储过程,创建方式参考上面步骤。存储过程代码如下:
BEGIN
#Routine body goes here...
declare tmp bigint default 0;
declare cur CURSOR FOR SELECT student_ID FROM users; -- 定义游标
declare CONTINUE HANDLER FOR SQLSTATE '02000' set tmp = 0;
OPEN cur; -- 打开游标
FETCH cur INTO tmp; -- 游标向下走一步
WHILE(tmp != 0)
DO
select tmp; -- 将tmp打印出来,会发现tmp就像一个指针,一开始指向第一行,游标走一步,则指向下一行记录
UPDATE users
SET student_ID = tmp + 100
WHERE student_ID = tmp;
FETCH cur INTO tmp;
END WHILE;
CLOSE cur; -- 关闭游标
END
执行上面的存储过程,你会发现,users中的数据如你所愿的发生了变化。
当然,这个功能直接用循环就可以解决,我这里只是简单展示一下游标的用法,利于对游标有个感性认识。
that‘s all~
mysql光标不见了_mysql创建光标失败相关推荐
- mysql创建新表失败_MySQL创建表失败的问题
今天有一个朋友问我一个MySQL的建表问题,问题的现象是创建表失败,根据他的反馈,问题比较奇怪, CREATE TABLE XXX ..此处省略260多个字段 `xxxxIsAllowIn` varc ...
- mysql用户数据导入_mysql创建数据库、用户及导入数据_mysql数据库教程
怎样mysql创建数据库.用户及导入数据 1. 修改MYSQL服务器字符集为utf8: 1.1 当前MYSQL服务器字符集设置 SHOW VARIABLES LIKE 'character_set_% ...
- mysql中删除用户_Mysql创建,删除用户
MySql中添加用户,新建数据库,用户授权,删除用户,修改密码(注意每行后边都跟个;表示一个命令语句结束): 1.新建用户 登录MYSQL: @>mysql -u root -p @>密码 ...
- docker mysql容器启动不_Mysql容器启动失败-解决方案
在看问题之前首先熟悉几个命令 相关命令 1.docker attach 连接到正在运行中的容器: 命令:docker attach --sig-proxy=falsemynginx 2.docker ...
- mysql添加临时索引_mysql创建索引/删除索引操作
-- 1.ALTER 创建索引 -- table_name表名,column_list列名,index_name索引名 -- 创建index索引 ALTER TABLE table_name ADD ...
- mysql删除表命令_MySQL创建和删除表操作命令实例讲解
创建表 简单的方式 CREATE TABLE person ( number INT(11), name VARCHAR(255), birthday DATE ); 或者是 CREATE TABLE ...
- mysql 远程用户授权_mysql创建远程用户并授权
今天需要在本地测试系统功能,因为本地没有数据库,就需要在程序里面连接远程数据库: 先用ssh登录远程服务器,用root连上数据库看看情况: mysql> select Host,User,Pas ...
- mysql磁盘临时表清理_mysql 创建大量磁盘临时表
发现 mysql 中创建的临时表基本都是磁盘临时表,对此进行排查.最后为临时表机制说明. 通过查看 mysql 状态变量,看到创建的临时表基本都是磁盘临时表. 查看临时表配置,默认配置 16M,配置并 ...
- mysql主从配置错误_mysql主从配置失败,主从通讯失败
配置mysql主从的时候,检查slave状态,发现报错信息, Error 'The MySQL server is running with the --skip-grant-tables optio ...
最新文章
- 目前我国家庭计算机用户接入因特网的下述,目前我国家庭计算机用户接入因特网的下述几种方法中,速度最快的是________ 。...
- dsp 数据类型强制转换_JavaSE第二章总结—数据类型
- java画布颜色切换_在本视频讲解演示中,扩展画布的目的是为了后面制作齿孔时操作起来方便,扩展部分更换了另一种颜色,是为了以示区别,能直观区分出票面部分。...
- [jQuery基础] jQuery案例 -- 新浪微博
- 解决百度 ueditor v1.4.3 编辑器上传图片失真的bug?
- JSON and Microsoft Technologies(翻译)
- Linux操作环境下配置MMIX环境
- android 向上弹出,android 弹出Popupwindow 自适用(Activity或者Dialog)判断向上还向下...
- ac管理器管理员密码忘记了_选择密码管理器
- matlab的取整函数
- Linux上层关机和reboot流程
- 如何让电脑计算机d盘布局,创建MSR分区,解决“由于用户电脑存在一个不支持的用于UEFI固件的硬盘布局,因此系统无法安装”...
- ARFoundation多图识别的一个脚本
- C++复原2048小游戏(纯文字)
- java项目管理软件系统springboot+mysql+layui+mybatis-plus进销存源码
- 搜狐号按作者火车头采集规则
- 艾司博讯:拼多多网店账号出现异常该怎么解决?
- Hibernate本地SQL结果集转换为自定义POJO对象
- 经济应用数学基础二 线性代数 (第四版) 赵树嫄 编 中国人大版 课后习题答案
- 2019年记录:java小白级程序员工作一年以来的经历,遇到的坎坷以及当时的心态
热门文章
- Docker之docker简介及其优势
- 解析CI即CodeIgniter框架在Nginx下的重写规则
- Halcon 标定与准确测量
- 安装mysql 5.5.14 报错
- OC-变量和数据类型
- Jmail的邮件发送
- [物理学与PDEs]第3章第2节 磁流体力学方程组 2.4 不可压情形的磁流体力学方程组...
- android adb install Failure,提示base.apkcode is missing问题的解决
- Windows与Linux共享文件夹互相访问
- 扬州古城门高挂大红春联迎新春 环卫工受邀揭幕