sql编程中流程控制 IF ……THEN……ELSEIF……THEN………END IF
写mysql存储过程应注意的几点:
1、声明变量(declare)时要注意字符集,用变量存储表字段时,表字段与变量的字符编码要一致。
2、mysql的字符合并不能用‘+’号,必须用concat函数。
3、每个游标必须使用不同的declare continue handler for not found set done=1来控制游标的结束。
BEGIN
declare rt VARCHAR(100) CHARACTER SET gbk DEFAULT NULL;
declare done tinyint(1) default 0;
DECLARE ttname VARCHAR(60) CHARACTER SET gbk DEFAULT NULL;
DECLARE tsqltxt VARCHAR(512) CHARACTER SET gbk DEFAULT NULL;
DECLARE tremarks VARCHAR(60) CHARACTER SET gbk DEFAULT NULL;
DECLARE tfield VARCHAR(60) CHARACTER SET gbk DEFAULT NULL;
DECLARE curtable CURSOR FOR
SELECT distinct TABLE_name
FROM information_schema.TABLEs where TRIM(TABLE_COMMENT)<>'' and TRIM(TABLE_COMMENT)<>'VIEW' order by TABLE_name;
declare continue handler for not found set done=1;
set NAMES 'utf8';
drop table if EXISTS GetTableSQL;
CREATE TABLE `gettablesql` (
`tbname` varchar(60) CHARACTER SET gbk DEFAULT NULL,
`sqltxt` varchar(4096) CHARACTER SET gbk DEFAULT NULL,
`tabletitle` varchar(51) CHARACTER SET gbk DEFAULT NULL
) ENGINE=InnoDB;
open curtable;
tableloop:
LOOP
set tsqltxt='select';
FETCH curtable
INTO ttname;
IF done = 1 THEN
LEAVE tableloop;
END IF;
-- select ttname;
BEGIN
declare done1 tinyint(1) default 0;
DECLARE curfield CURSOR FOR
SELECT COLUMN_NAME,COLUMN_COMMENT
FROM information_schema.COLUMNS where upper(TABLE_name)=upper(ttname) and (COLUMN_COMMENT<>'') ;
declare continue handler for not found set done1=1;
OPEN curfield;
fieldloop:
LOOP
FETCH curfield
INTO tfield,tremarks;
IF done1 = 1 THEN
LEAVE fieldloop;
END IF;
if tsqltxt='select' THEN
set tsqltxt=CONCAT(tsqltxt,' ',tfield,' ','''',tremarks,'''');
ELSE
set tsqltxt=CONCAT(tsqltxt,',',tfield,' ','''',tremarks,'''');
END IF;
END LOOP fieldloop;
close curfield;
set tsqltxt=concat(tsqltxt,' from ',ttname);
insert into GetTableSQL values(ttname,tsqltxt,'');
END;
END LOOP tableloop;
close curtable;
update GetTableSQL as G set tabletitle=(select TABLE_COMMENT from information_schema.TABLEs s
where (trim(s.TABLE_COMMENT)<>'') and g.tbname=s.table_name );
select cast(count(*) as char) into rt from GetTableSQL;
set rt=concat('成功更新',rt,'个表的表名注释和字段注释到字典库GetTableSQL中!');
SELECT rt;
END
sql编程中流程控制 IF ……THEN……ELSEIF……THEN………END IF的更多相关文章
- Java编程基础——流程控制
Java编程基础——流程控制 摘要:本文主要介绍Java编程中的流程控制语句. 分类 流程控制指的是在程序运行的过程中控制程序运行走向的方式.主要分为以下三种: 顺序结构:从上到下依次执行每条语句操作 ...
- Node.js中流程控制
Node.js中的流程控制可以使用async,在使用之前需要先安装,使用npm安装 npm install async --g 下面主要介绍4种流程控制的方式: 1.串行无关联:async.serie ...
- PL/SQL笔记(1)-流程控制,循环,异常,块
流程控制 1.If,then,else,elsif(不是elseif) ' then null; endif; 2.Case 简单case表达式: 搜索型Case表达式: 3.goto语句 begin ...
- PL/SQL程序设计、流程控制
PL/SQL是 Procedure Language & Structured Query Language 的缩写 PL/SQL是对SQL语言存储过程语言的扩展 PL/SQL程序由三个块组成 ...
- 自动化运维:(2)Shell 编程的流程控制
一. if语句 1.单分支if语句——单一条件,只有一个输出 #!/bin/bash # 单if语句的使用场景 if [ "$1" == "nan" ] the ...
- Linux学习笔记(18) Shell编程之流程控制
1. if语句 (1) 单分支if条件语句 格式为: # 注意条件判断式两端的空格if [ 条件判断式 ];then 程序员 fi 或者 if[ 条件判断式 ] then 程序 fi 例:判断分区使用 ...
- 从头开始-04.C语言中流程控制
分支结构: if语句:当条表达式满足的时候就执行if后面大括号中语句 三种格式: if,if else , if else if else 特点:1.只有一个代码块会被执行 2.若有else那么必有一 ...
- shell编程 之 流程控制(条件语句和循环语句)
1 if ...else... 基本格式: if condition then commend else commend fi 当然也可以写到一行,用[ ]表明边界,用:表示分行.比如: if [ $ ...
- shell编程中的控制判断语句
if 单格式与嵌套 if 条件表达式;then #当条件为真时执行以下语句 命令列表 else #为假时执行以下语句 命令列表 fi if 语句也可以嵌套使用 if 条件表达式1;then if 条件 ...
随机推荐
- php require include 区别
php提供了两种包含外部文件的方法:include()和require().include()语句是一个常规的php函数:而require() 是一种特殊的语言结构,它的使用受到一些限制.对这两者来说 ...
- ifstream 和 ofstream 用法。
outfile << pContent;//不可以用这个,因为不能写完全,比如遇到字符串中出现/0就终止了 bool CTestEn_DecryptDLLDlg::WriteDataFil ...
- cool
Heidi Roizen女士一度是硅谷人人争相学习的典范.她曾创办自己的公司并管理了 14 年之久.后来,她担任苹果公司主管开发者关系的高级副总裁.现在,她是 DFJ Venture 的一位风投家,她 ...
- 求a^b
时间: 1000ms / 空间: 131072KiB / Java类名: Main 描述 求a^b 由于结果可能很大,我们现在只需要知道这个值 mod 1012就可以了(为什么是1012?我的生日) ...
- makefile for opencv
makefile #################################################### # Generic makefile - 万能Makefile # for ...
- pymysql中如何将动态的插入数据库中
data = { ', 'name': 'zengsf', 'age': 20 } table = 'students' #获取到一个以键且为逗号分隔的字符串,返回一个字符串 keys = ', '. ...
- 国内Ubuntu镜像源
国内有很多Ubuntu的镜像源,包括阿里的.网易的,还有很多教育网的源,比如:清华源.中科大源. 我们这里以中科大的源为例讲解如何修改Ubuntu 18.04里面默认的源. 编辑/etc/apt/so ...
- Spring4.3整合Hibernate4.3搭建Spring MVC
1,web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi=&qu ...
- ASP.NET MVC配置Redis服务
===================== 1.下载并安装Redis.官网并未提供Windows安装版,所以去Github 下载 下载地址: https://github.com/MicrosoftA ...
- 各种CTF的WP
http://l-team.org/archives/43.html PlaidCTF-2014-twenty/mtpox/doge_stege-Writeup http://l-team.org/a ...