MySQL---循环语句
2023-09-11 14:14:57 时间
mysql 操作同样有循环语句操作,网上说有3中标准的循环方式: while 循环 、 loop 循环和repeat循环。还有一种非标准的循环: goto。 鉴于goto 语句的跳跃性会造成使用的的思维混乱,所以不建议使用。
这几个循环语句的格式如下:
WHILE……DO……END WHILE
REPEAT……UNTIL END REPEAT
LOOP……END LOOP
GOTO。
一 、 while 循环
delimiter $$ // 定义结束符为 $$ drop procedure if exists wk; // 删除 已有的 存储过程 create procedure wk() // 创建新的存储过程 begin declare i int; // 变量声明 set i = 1; while i < 11 do // 循环体 insert into user_profile (uid) values (i); set i = i +1; end while; end $$ // 结束定义语句 // 调用 delimiter ; // 先把结束符 回复为; call wk();
delimter : mysql 默认的 delimiter是; 告诉mysql解释器,该段命令是否已经结束了,mysql是否可以执行了。
这里使用 delimiter 重定义结束符的作用是: 不让存储过程中的语句在定义的时候输出。
创建 MySQL 存储过程的简单语法为:
CREATE PROCEDURE 存储过程名称( [in | out | inout] 参数 ) BEGIN Mysql 语句 END
调用存储过程:
call 存储过程名称() // 名称后面要加()
二 、 REPEAT 循环
delimiter // drop procedure if exists looppc; create procedure looppc() begin declare i int; set i = 1; repeat insert into user_profile_company (uid) values (i+1); set i = i + 1; until i >= 20 end repeat; end // ---- 调用 call looppc()
三、 LOOP 循环
delimiter $$ drop procedure if exists lopp; create procedure lopp() begin declare i int ; set i = 1; lp1 : LOOP // lp1 为循环体名称 LOOP 为关键字 insert into user_profile (uid) values (i); set i = i+1; if i > 30 then leave lp1; // 离开循环体 end if; end LOOP; // 结束循环 end $$
注意默认结束符 ";", 在mysql 操作中语句结束要使用 ";", 不然会出现语法错误。
注意语句需要全部选中一起执行。
相关文章
- mysql 设置 row格式binlog_为什么要把MySQL的binlog格式修改为row
- mysql中已经存在某个库中有大小写的表,将lower_case_table_names由0改为1对已经存在的表是否有影响?
- Sqoop2 将hdfs中的数据导出到MySQL
- 《MySQL DBA修炼之道》——1.7 MySQL复制架构
- Mysql错误check the manual that corresponds to your MySQL server version for the right syntax
- 项目访问mysql时报: Failed to obtain JDBC Connection...:Host ‘X‘is not allowed to connect to this MySQL ser
- 【mysql报错】ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/tmp/mysql.sock‘
- 三、mysql 存储引擎-建库建表操作
- mysql循环批量插入测试数据
- MySQL中间件之ProxySQL(6):管理后端节点
- MySQL集群结构说明
- 转 【MySQL】常用拼接语句 shell 下执行mysql 命令
- ubuntu16.04系统彻底卸载mysql,并源码免编译重装MySQL的步骤
- python操作mysql数据库系列-操作MySql数据库(五)
- Docker安装MySQL
- mysql—MySQL数据库中10位或13位时间戳和标准时间相互转换
- ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var mysql (转)
- Amoeba for MySQL 非常好用的mysql集群软件
- message from server: “Host is not allowed to connect to this MySQL server“解决办法
- 数据库原理及MySQL应用 | 约束
- (5.7)mysql高可用系列——MySQL中的GTID复制(理论篇)【转】
- (5.4)mysql高可用系列——MySQL异步复制(实践)
- 五分钟学会悲观乐观锁-java vs mysql vs redis三种实现
- Go-MySQL-Driver:一个Go语言的轻量级极速的mysql驱动
- [Mysql] WITH ROOLUP
- Linux安装Mysql server镜像安装失败 警告:mysql-community-devel-8.0.31-1.el7.x86_64.rpm: 头V4 RSA/SHA256 Signature