mysql存储过程 例子 游标cursor 循环嵌套 事物
昨天要mysql中写存储过程发现网上有关于cursor循环且套的资料很少,现发出本人写的例子,希望能对大家有帮助.
看招:
DELIMITER $$
USE `ad_db`$$
DROP PROCEDURE IF EXISTS `test`$$
CREATE DEFINER=`root`@`%` PROCEDURE `test`()
BEGIN
/** CPA效果数 */
DECLARE _tmpId1 INT;
DECLARE _tmpId2 VARCHAR(5000);
DECLARE not_found INT DEFAULT 0 ;-- 是否未找到数据 标记
DECLARE cursor1 CURSOR FOR SELECT id from fhtest2 ; -- 测试用无业务关系
DECLARE cursor2 CURSOR FOR SELECT test from fhtest2 ;-- 测试用无业务关系
DECLARE CONTINUE HANDLER FOR NOT FOUND SET not_found = 1; -- 如果未找到数据 将标记改为不可用
DECLARE EXIT HANDLER FOR SQLEXCEPTION ROLLBACK; -- 异常跳出
START TRANSACTION; -- 启动事物
INSERT INTO fhtest2 (test) VALUES (' 开始1 ');
INSERT INTO fhtest2 (test) VALUES (' 开始2 ');
OPEN cursor1; -- 启动游标1
WHILE not_found = 0 DO
FETCH cursor1 INTO _tmpId1;-- 获取数据
IF NOT not_found THEN
OPEN cursor2; -- 启动游标2
WHILE not_found = 0 DO
FETCH cursor2 INTO _tmpId2;-- 获取数据
IF NOT not_found THEN
INSERT INTO fhtest2 (test) VALUES (CONCAT(' id + test= ',_tmpId1,_tmpId2));
END IF ;
END WHILE ;
CLOSE cursor2;
SET not_found = 0 ; -- 将 标记改为0即可用 否则只执行一次,以为内部循环执行完成后 not_found = 1,所有要将其置为0
END IF;
END WHILE;
CLOSE cursor1;
COMMIT;
END$$
DELIMITER ;
相关文档:
Link from : http://www.5ilinux.com/blog/archives/000091.html
1.首先我们建立相应的用户和用户组
groupadd -g 5500 ftpgroup
adduser -u 5500 -s /bin/false -d /bin/null -c "proftpd user" -g ftpgroup ftpuser
2.操作数据库
mysql mysql -uroot -ppassword
create database ftpdb
grant select, upd ......
SOURCE: CLICK HERE
本文讲述SQL Server、Oracle、MySQL查出值为NULL的替换。
在SQL Server Oracle MySQL当数据库中查出某值为NULL怎么办?
1、MSSQL: ISNULL()
语法
ISNULL ( check_expression , replacement_value )
参数
check_expression
将被检查是否为 NULL的表达式。check_expression 可以是任何类型的。
re ......
/*演示一个JDBC程序,从Mysql的LMD数据库中读出表admin的一个信息*/
import java.sql.*;
public class TestMysqlConnection {
public static void main(String[] args) {
Connection conn = null;
Statement stmt = ......
以下的文章是MySQL grant语法的详细解析,如果你对MySQL grant语法的相关的实际操作有兴趣的话,你就可以对以下的文章点击观看了。我们大家都知道MySQL数据库赋予用户权限命令的简单格式可概括为:
grant 权限 on 数据库对象 to 用户
一、grant 普通数据用户,查询、插入、更新、删除 数据库中所有表数据的权利。
grant ......
1. 给root加密码:/usr/bin/mysqladmin -u root password 123456
2. 导出:mysqldump -u root -p dbname > file.sql
3. 导入:mysql -u root -p dbname < backup-file.sql
4. 授权:grant all on *.* to root@"%" identified by "密码";
5. 收回权限:revoke all privileges on *.* from root@"%";
6. 登录:mys ......