mysql存储过程好几年没用了,最近看文档,就写了个小例子实践下,增强记忆。
例子主要实现的是从一张表更新记录到另外一张表去。
CREATE TABLE `user_info` (
`user_id` int(11) default NULL,
`user_name` varchar(20) default NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
CREATE TABLE `tmp_user` (
`tmp_user_id` int(11) default NULL,
`tmp_name` varchar(20) default NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
insert into `user_info` (`user_id`, `user_name`) values('20','aa');
insert into `user_info` (`user_id`, `user_name`) values('21','bb');
insert into `user_info` (`user_id`, `user_name`) values('22','cc');
insert into `user_info` (`user_id`, `user_name`) values('23','dd');
insert into `tmp_user` (`tmp_user_id`, `tmp_name`) values('20','');
insert into `tmp_user` (`tmp_user_id`, `tmp_name`) values('22','');
insert into `tmp_user` (`tmp_user_id`, `tmp_name`) values('23','');
下面创建存储过程
DELIMITER $$
DROP PROCEDURE IF EXISTS `test`.`pro_user`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `pro_user`()
BEGIN
DECLARE total INT DEFAULT 0;
DECLARE tmpCount INT DEFAULT 0;
DECLARE userId INT DEFAULT 0;
DECLARE userName varchar(50);
DECLARE cur1 CURSOR FOR SELECT user_id,user_name FROM user_info;
SELECT count(*) INTO total FROM user_info;
OPEN cur1;
REPEAT
FETCH cur1 INTO userId, userName;
SET tmpCount = tmpCount + 1;
UPDATE tmp_user set tmp_name=userName where tmp_user_id=userId;
UNTIL tmpCount >=total END REPEAT;
CLOSE cur1;
select total ;
END$$
DELIMITER ;
调用CALL pro_user();
查看tmp_user,发现记录已经同步过去了。
分享到:
相关推荐
个人看完视频总结的游标小结,如有差错请多指教
1. **Python MySQL Connector**:MySQL-python,也称为MySQLdb,是Python中广泛使用的MySQL数据库适配器。它实现了Python DB-API 2.0规范,使得在Python中编写SQL查询和处理数据库结果变得简单。 2. **版本信息**:...
### MySQL游标(循环操作) #### 一、游标简介 在MySQL中,游标是一种数据库对象,主要用于处理存储过程中的结果集。游标允许我们逐行地读取查询结果,这对于需要对每一行数据执行特定操作的情况非常有用。通过...
同时,压缩包中的`mysql-connector-java-8.0.23.jar.txt`文件可能是关于驱动的使用指南、版本说明或授权信息,对于初学者来说,阅读这些文档有助于更好地理解和使用该驱动。 总的来说,MySQL Connector/J 8.0.23是...
`mysql-connector-java-5.1.47`属于Type 4,它使用纯Java实现,可以直接通过网络与MySQL服务器通信,无需依赖操作系统特定的库。 使用`mysql-connector-java-5.1.47`时,你需要在Java应用中添加对应的JAR文件到类...
MySql存储过程,游标的使用方法,速度极快!
在Python 3.x中,由于`mysql-python`库不再维护,推荐使用`pymysql`或`mysql-connector-python`作为替代。`pymysql`是社区维护的一个兼容`MySQLdb`的库,而`mysql-connector-python`是MySQL官方提供的Python驱动,...
MySQL Connector/J还支持JDBC的高级特性,如批处理、存储过程、游标、多结果集等。此外,它还支持MySQL的特性,如SSL连接、分区表、复制和负载均衡。 总结来说,"mysql-connector-j-8.0.31"是Java开发者连接MySQL...
除了基本的连接和查询,MySQL Connector/J还支持预编译的SQL语句(PreparedStatement),事务处理,批处理,以及高级特性如存储过程和游标。此外,该驱动还提供了连接池功能,允许高效地重用数据库连接,提升应用...
在使用mysql-connector-java-5.1.38-jar时,开发者需要在项目中添加对应的依赖。对于Maven项目,可以在pom.xml文件中添加如下依赖: ```xml <groupId>mysql <artifactId>mysql-connector-java <version>5.1.38 ...
值得注意的是,虽然MySQL-python适用于Python 2.x版本,但Python 2已不再维护,建议升级到Python 3,并使用更现代的库如`pymysql`或`mysql-connector-python`。这些库对Python 3有更好支持,并提供了更多的功能和...
除了基本的连接和查询,MySQL Connector/J还支持事务管理、批处理操作、连接池管理和高级特性,如存储过程调用、游标和类型映射。对于更复杂的数据库操作,还可以使用JDBC的高级特性,如`CallableStatement`和`...
MySQL Connector/Python遵循Python的DBAPI(PEP 249)规范,这是一个Python数据库应用编程接口,使得不同数据库适配器有了一致的使用方式。它支持Python 2.x和3.x版本,并且提供了全面的功能,包括连接管理、事务...
通过深入学习这些知识点,你可以熟练掌握使用 Java 连接和操作 MySQL 数据库的方法,从而在实际项目中构建稳定、高效的数据库应用。记得始终关注官方文档和社区更新,以便获取最新的功能和安全改进。
此外,MySQL Connector/J 8.0.20还支持最新的JDBC 4.2规范,提供了更多高级特性,如服务器端游标、元数据查询增强、更好的错误处理机制等。对于Java后端开发来说,熟练掌握MySQL Connector/J的使用是必备技能,它...
这个可执行文件将负责安装所需的Python模块和依赖,使得Python环境能够识别并使用MySQL连接器。安装完成后,用户就可以在Python脚本中导入`MySQLdb`模块,开始编写与MySQL数据库交互的代码。 总的来说,MySQL-...
MySQL Connector/ODBC 是 MySQL 数据库管理系统与应用程序之间的一个重要桥梁,它允许使用 ODBC(Open Database Connectivity)标准来连接到 MySQL 数据库。在本文中,我们将深入探讨这个组件,以及如何利用它来实现...
MySQL是世界上最受欢迎的关系型数据库管理系统之一,而Java作为一种广泛使用的编程语言,经常被用来与MySQL进行数据交互。在Java中,连接MySQL数据库的关键是通过Java Database Connectivity (JDBC) API。`mysql-...
首先,MySQL Connector/C提供了API(应用程序编程接口),包括预编译的语句、事务处理、游标、多结果集等功能。这些API使得开发者可以方便地在C代码中集成数据库操作,无需了解底层的网络通信和SQL解析细节。 其次...