首页 > 代码库 > MySQL存储过程、函数和游标
MySQL存储过程、函数和游标
这里我新建了两个表,一个users和test
1 CREATE TABLE users(2 username varchar(20),3 pwd varchar(30)4 );5 CREATE TABLE test(6 id INT,7 username VARCHAR(20)8 )
这里向users表中插入了多条数据,主要是为了测试存储过程和游标的使用
1.不带参数的存储过程,从users表中查出所有数据
1 BEGIN 2 SELECT * FROM users;3 END
结果和上图一样
2.带参数的存储过程
1 BEGIN2 SELECT * FROM users WHERE pwd=name_in;3 END
这里根据传入的pwd不同结果集不同
3.函数
1 RETURN (SELECT users.pwd FROM users WHERE users.username = ‘gxf‘)
下面是游标的使用
这里新建了一个存储过程,并在存储过程中使用游标遍历users表,在遍历的时候向test表中插入一条数据,(1,username)username来自users表中
1 BEGIN 2 DECLARE TEMP_NAME VARCHAR(20) DEFAULT ‘GXF‘; 3 DECLARE TEMP_PWD VARCHAR(30) DEFAULT ‘123456‘; 4 DECLARE DONE INT DEFAULT 0; 5 DECLARE i INT DEFAULT 10; 6 7 DECLARE cursor_query CURSOR FOR SELECT * FROM users; 8 DECLARE CONTINUE HANDLER FOR NOT FOUND SET DONE = 1; 9 10 OPEN cursor_query; 11 12 myLoop : LOOP 13 FETCH cursor_query INTO TEMP_NAME, TEMP_PWD;14 IF DONE = 1 THEN 15 LEAVE myLoop;16 END IF;17 18 INSERT INTO test VALUES(1, TEMP_NAME);19 20 END LOOP myLoop; 21 22 CLOSE cursor_query; 23 END
通过调用使用游标的存储过程后,查询test表
1 CALL DATA_QUERY_CURSOR;2 SELECT * FROM test;
test表中的记录为
MySQL存储过程、函数和游标
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。