- 浏览: 791552 次
- 性别:
- 来自: 成都
文章分类
- 全部博客 (151)
- Java-Basic (25)
- Java-NIO (3)
- Java-Mybatis (4)
- Java-Web (15)
- DB-oracle (18)
- DB-mysql (29)
- DB-sqlserver (4)
- DB-postgresql (2)
- DB-SQLite (1)
- DB-H2 (6)
- Tool-Flex (1)
- Tool-Ftp (3)
- Tool-Maven (5)
- Netlink (2)
- Web-CSS (3)
- Web-UI (1)
- Web-JavaScript (8)
- NoSQL (3)
- Mina (2)
- TCPUDP (2)
- SEO (2)
- Network (6)
- DataStructure (1)
- Website-test (1)
- Tool-Excel (1)
- Java-Concurrent (2)
- 前辈指点 (0)
- Eclipse plugins (1)
- DB-NoSQL (1)
最新评论
-
18322696278:
My97DatePicker控件显示时分秒 -
dllhenu:
你好,我让ol加载tiptip,但是tiptip没有在点所在的 ...
OpenLayers下使用Jquery tooltip(Qtip)让要素信息自动显示或隐藏 -
boonya:
你所说的是网页上选择文件路径吧,用ServletFileUpl ...
Apache提供的FTP文件上传下载 -
淡然若水:
我也是用这种方法啊。。。但是FileInputStream i ...
Apache提供的FTP文件上传下载 -
liuweihug:
json序列化反序列化插件-json2.js 介绍和使用 - ...
Json 数据反序列化为Java对象
如题实现如下功能:
- 表字段修改
- 数据更新
- 索引创建
DROP PROCEDURE if EXISTS create_column_index_for_xh_track_path_tb; CREATE PROCEDURE create_column_index_for_xh_track_path_tb() BEGIN # 定义变量名称 DECLARE dbname VARCHAR(200) DEFAULT 'xht_ywp'; DECLARE tbname VARCHAR(200); ## 定义查询变量 DECLARE cursor_ CURSOR FOR # 注意这里的正则匹配结尾是手机号注册的分表 SELECT TABLE_NAME from information_schema.`TABLES` WHERE TABLE_NAME REGEXP "^xh_track_path_tb_[1][35678][0-9]{9}$"; # 打开游标 OPEN cursor_; # 游标赋值 FETCH cursor_ into tbname; my_tables_loop:LOOP # 获取单位编码 SET @dwcode=''; SET @dwcode_select=CONCAT('SELECT RIGHT("',tbname,'",11) INTO @dwcode'); PREPARE dwcode_select FROM @dwcode_select; EXECUTE dwcode_select; # 查询是否可以修改 SET @enable_alter = 0; SET @selec = CONCAT('SELECT count(*) INTO @enable_alter FROM information_schema.COLUMNS WHERE table_schema = "',dbname,'" AND table_name = "',tbname,'" AND column_name in ("STARTDATE","STOPDATE","NSJGID")'); PREPARE selec FROM @selec; EXECUTE selec; # 可执行时执行修改 IF (@enable_alter = 0 AND LENGTH(@dwcode)=11 AND tbname <> '' ) THEN # 开启事务处理 START TRANSACTION; # ---------------------------------------新增分表字段------------------------ # 新增修改字段语句 SET @mysql_alter_startdate_column=CONCAT('ALTER TABLE ',tbname,' ADD STARTDATE DATETIME'); PREPARE mysql_alter_startdate_column FROM @mysql_alter_startdate_column; SET @mysql_alter_stopdate_column=CONCAT('ALTER TABLE ',tbname,' ADD STOPDATE DATETIME'); PREPARE mysql_alter_stopdate_column FROM @mysql_alter_stopdate_column; SET @mysql_alter_nsjgid_column=CONCAT('ALTER TABLE ',tbname,' ADD NSJGID VARCHAR(200)'); PREPARE mysql_alter_nsjgid_column FROM @mysql_alter_nsjgid_column; # 更新字段 EXECUTE mysql_alter_startdate_column; EXECUTE mysql_alter_stopdate_column; EXECUTE mysql_alter_nsjgid_column; # ---------------------------------------更新缺省数据------------------------ # 更新日期字段的值 SET @mysql_update_date_data=CONCAT('UPDATE ',tbname,' SET STARTDATE=DATE_FORMAT(START_TIME,"%Y-%m-%d 00:00:00"),STOPDATE=DATE_FORMAT(STOP_TIME,"%Y-%m-%d 00:00:00") WHERE (STARTDATE IS NULL) OR (STOPDATE IS NULL)'); PREPARE mysql_update_date_data FROM @mysql_update_date_data; # 更新组织机构数据 SET @mysql_update_nsjg_data=CONCAT('UPDATE ',tbname,' A SET A.NSJGID=(SELECT B.NSJGID FROM XH_HLY_TB_',@dwcode,' B WHERE A.HLY_ID=B.HLY_ID) WHERE A.NSJGID IS NULL'); PREPARE mysql_update_nsjg_data FROM @mysql_update_nsjg_data; # 更新数据 EXECUTE mysql_update_date_data; EXECUTE mysql_update_nsjg_data; # ---------------------------------------新增分表索引------------------------ # 创建表对应索引列 SET @mysql_create_hly_index=CONCAT('ALTER TABLE ',tbname,' ADD INDEX HLY_ID(HLY_ID)'); PREPARE mysql_create_hly_index FROM @mysql_create_hly_index; SET @mysql_create_startdate_index=CONCAT('ALTER TABLE ',tbname,' ADD INDEX STARTDATE(STARTDATE)'); PREPARE mysql_create_startdate_index FROM @mysql_create_startdate_index; SET @mysql_create_stopdate_index=CONCAT('ALTER TABLE ',tbname,' ADD INDEX STOPDATE(STOPDATE)'); PREPARE mysql_create_stopdate_index FROM @mysql_create_stopdate_index; # 创建索引 EXECUTE mysql_create_hly_index; EXECUTE mysql_create_startdate_index; EXECUTE mysql_create_stopdate_index; # 提交事务 COMMIT; # 赋值下一个游标 FETCH cursor_ INTO tbname; ELSEIF (@enable_alter = 0 AND LENGTH(@dwcode)<>11 AND tbname <> '') THEN # 赋值下一个游标 FETCH cursor_ INTO tbname; #继续迭代 iterate my_tables_loop; ELSE # 离开循环 leave my_tables_loop; END IF; end LOOP my_tables_loop; CLOSE cursor_; END
发表评论
-
MYSQL存储过程游标错误:No data - zero rows fetched, selected, or processed
2019-07-04 11:08 4021游标FETCH获取为空时应该及时退出循环: DROP PR ... -
MYSQL循环和退出条件
2019-07-02 13:55 17591.REPEAT 代码如下: REPEAT S ... -
MySQL中判断索引不存在时添加索引
2019-07-02 13:51 3064使用存储过程实现索引添加: DROP PROCEDURE ... -
MySQL锁表问题处理
2017-05-20 16:56 1194MySQL锁概述 相对其他数据库而言,MySQL的锁机制 ... -
MySQL在Linux找不到表名-处理忽略大小写
2016-12-27 13:23 1272Linux找到my.cnf文件 # find / -name ... -
MySQL用户管理及授权-开启远程访问
2016-12-27 10:27 1763Linux开启或停止Mysql服务 #service mys ... -
MySQL查询语句处理结果-枚举字段
2016-10-08 14:43 1844[size=medium] 语法:CASE [COLUMN_] ... -
MySQL DATE_FORMAT() 函数
2016-09-25 11:49 521注:当前年份是2012-11-15 SELECT DATE_ ... -
MySQL多结果集合并union查询
2016-03-30 16:16 1183需求: 查询规则自定义,由数据库保存,返回结果字段来自同一张表 ... -
MySQL允许局域网或外部IP远程访问
2016-03-23 11:17 1181From:http://jiony.iteye.com/blo ... -
Mysql字符串截取函数SUBSTRING的用法
2016-01-12 13:15 6675MySQL的字符串函数截取字符,比用程序截取(如PHP或JAV ... -
MySQL实现统计数据并插入数据的存储过程
2016-01-12 10:39 1337统计存储过程,这里是将统计的结果插入一个表中,后台可以有定时任 ... -
MySQL数据备份和还原
2015-12-30 09:27 1432〇、物理备份与逻辑备份 逻辑备份:将需要备份的数据通过一定的 ... -
MySQL存储过程select中为变量赋值
2015-12-29 13:48 3343注:查询可以使用游标获取单个或一组数据,但有时候返回值就只有一 ... -
MySQL存储过程使用游标删除多表数据
2015-12-29 10:43 2041注:游标只有在打开的时候才能使用,用完必须关闭之。 错误存储 ... -
MYSQL通过SQL脚本创建存储过程(游标删除多表数据)
2015-12-28 16:34 2180首先描述一下业务处理存储过程功能:删除除系统管理员创建的角色和 ... -
MySQL函数过程示例-根据视图和游标删除数据
2015-12-23 17:38 1404注:游标和视图结合起来使用,因为游标不支持动态表传入。 参数 ... -
MySQL函数过程示例-删除和插入数据
2015-12-23 16:39 715[color=darkred][size=medium] B ... -
MySQL函数
2015-12-22 11:34 640复制代码 控制流函数 IF ... -
MySQL存储过程示例
2015-12-17 09:40 858写mysql存储过程应注意的几点: 1、声明变量(decla ...
相关推荐
但对于update操作,所耗的时间却急剧上升,主要原因是在更新数据的同时,mysql会执行索引的更新。 下面做了一个简单的试验。 (1)首先对某个亿级记录的表字段所有记录执行更新: for idx in range(1, count+1): sql ...
9、 添加表字段 添加单列 alter table user add tel varchar(11) default ‘02012345678’; 添加多列 alter table user add ( photo blob, birthday date ); 上面就同时增加了多列字段 10、 修改表字段 修改tel列...
最近一段时间一边在线上抓取SQL来优化,一边在整理这个开发规范,尽量减少新的问题SQL进入生产库。...(1)MySQL有配置参数lower_case_table_names=1,即库表名以小写存储,大小写不敏感。如果是0,则库表名以实际情况
如果遇到EMOJ等表情符号的存储需求,可申请使⽤UTF8MB4字符集 2.3 所有表都要添加注释,除主键外的字段都需要添加注释 类status型需指明主要值的含义,如'0-离线,1-在线' 2.4 控制单表字段数量 单表字段数上限30...
实例148 使用事件分配线程更新Swing控件 193 实例149 使用SwingWorker类完成耗时操作 194 第7章 反射与异常处理 195 7.1 反射的基础 196 实例150 实例化Class类的5种方式 196 实例151 获得Class对象表示实体的名称 ...
修订记录 时间 版本 修改点 修改人 目 录 1 目的 3 2 数据库名命名规范 3 3 数据库表命名规范 3 4 表字段命名规范 4 5 表设计规范 4 6 索引命名规范 5 7 主键、外键命名规范 5 目的 此规范包括数据库名命名规范、...
数据库名称=工程名称CRM_16 表设计: 表字符:utf-8、utf8 表字段: 主键、bigint(20) 自增、(32) UUID、不能为空 索引: 外键、关联字段、查询比较频繁的字段 单表:500M、索引个数16个 临时表、存储过程、视图...
4 逻辑设计 3 5 物理设计 4 5.1 表汇总 4 5.2 表[X]:[XXX表] 4 5.3 视图的设计 6 5.4 存储过程、函数及触发器的设计 6 6 安全性设计 6 6.1 防止用户直接操作数据库的方法 6 6.2 用户帐号密码的加密方法 7 6.3 角色...