- 浏览: 798110 次
- 性别:
- 来自: 成都
文章分类
- 全部博客 (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 4193游标FETCH获取为空时应该及时退出循环: DROP PR ... -
MYSQL循环和退出条件
2019-07-02 13:55 18011.REPEAT 代码如下: REPEAT S ... -
MySQL中判断索引不存在时添加索引
2019-07-02 13:51 3174使用存储过程实现索引添加: DROP PROCEDURE ... -
MySQL锁表问题处理
2017-05-20 16:56 1225MySQL锁概述 相对其他数据库而言,MySQL的锁机制 ... -
MySQL在Linux找不到表名-处理忽略大小写
2016-12-27 13:23 1310Linux找到my.cnf文件 # find / -name ... -
MySQL用户管理及授权-开启远程访问
2016-12-27 10:27 1812Linux开启或停止Mysql服务 #service mys ... -
MySQL查询语句处理结果-枚举字段
2016-10-08 14:43 1873[size=medium] 语法:CASE [COLUMN_] ... -
MySQL DATE_FORMAT() 函数
2016-09-25 11:49 551注:当前年份是2012-11-15 SELECT DATE_ ... -
MySQL多结果集合并union查询
2016-03-30 16:16 1225需求: 查询规则自定义,由数据库保存,返回结果字段来自同一张表 ... -
MySQL允许局域网或外部IP远程访问
2016-03-23 11:17 1214From:http://jiony.iteye.com/blo ... -
Mysql字符串截取函数SUBSTRING的用法
2016-01-12 13:15 6709MySQL的字符串函数截取字符,比用程序截取(如PHP或JAV ... -
MySQL实现统计数据并插入数据的存储过程
2016-01-12 10:39 1378统计存储过程,这里是将统计的结果插入一个表中,后台可以有定时任 ... -
MySQL数据备份和还原
2015-12-30 09:27 1464〇、物理备份与逻辑备份 逻辑备份:将需要备份的数据通过一定的 ... -
MySQL存储过程select中为变量赋值
2015-12-29 13:48 3413注:查询可以使用游标获取单个或一组数据,但有时候返回值就只有一 ... -
MySQL存储过程使用游标删除多表数据
2015-12-29 10:43 2085注:游标只有在打开的时候才能使用,用完必须关闭之。 错误存储 ... -
MYSQL通过SQL脚本创建存储过程(游标删除多表数据)
2015-12-28 16:34 2229首先描述一下业务处理存储过程功能:删除除系统管理员创建的角色和 ... -
MySQL函数过程示例-根据视图和游标删除数据
2015-12-23 17:38 1434注:游标和视图结合起来使用,因为游标不支持动态表传入。 参数 ... -
MySQL函数过程示例-删除和插入数据
2015-12-23 16:39 758[color=darkred][size=medium] B ... -
MySQL函数
2015-12-22 11:34 676复制代码 控制流函数 IF ... -
MySQL存储过程示例
2015-12-17 09:40 893写mysql存储过程应注意的几点: 1、声明变量(decla ...
相关推荐
在实际工作中,我们可能还会遇到更多复杂的情况,如处理索引、视图、存储过程、触发器等。对于初学者来说,可以通过阅读官方文档、在线教程或参考书籍来深入学习MySQL。而提供的`5.查看表字段信息.txt`文件可能包含...
1. 避免 MySQL 给我们建立索引 Rowid,不用我们的表字段建立索引。 2. 避免 B+ 树的结构频繁变化,页结点分裂,表自动平衡。 3. 查询遵循必须按照索引顺序的规则:从最左边开始例如(bill,30) (bill 30 dev)可以...
本篇文章将详细介绍如何在MySQL中判断表字段或索引是否存在,并提供相关的示例代码。 首先,我们来看如何判断表字段是否存在。在MySQL中,我们可以利用`information_schema.columns`系统表来查询当前数据库中的表...
本主题将深入探讨如何自定义数据库表字段,以及它的重要性、实现方式和最佳实践。 首先,我们要明白数据库表是数据组织的核心,而字段则是表的构成元素,它们决定了表能存储何种类型的数据。自定义字段意味着可以...
6. **JSON 表字段**:MySQL 还支持在表设计时将 JSON 作为表字段,这样可以在一个传统的关系型表中嵌入复杂的数据结构,从而实现更丰富的数据模型。 7. **JSON 在 Web 开发中的应用**:由于 JSON 与 JavaScript 的...
3. **数据类型**:理解MySQL中的各种数据类型,如INT、VARCHAR、DATE、TIME、DECIMAL等,它们决定了表字段可以存储的数据类型。 4. **数据库设计**:理解数据库设计的重要性,包括范式理论(第一范式、第二范式、第...
但对于update操作,所耗的时间却急剧上升,主要原因是在更新数据的同时,mysql会执行索引的更新。 下面做了一个简单的试验。 (1)首先对某个亿级记录的表字段所有记录执行更新: for idx in range(1, count+1): sql ...
文件"03-mysql表仿照oracle表_脚本.sql"可能包含了这样的转换脚本,通过分析Oracle的表结构,定义MySQL的表字段、约束和索引,以确保数据迁移或交互时的一致性。 在实际项目中,数据库设计不仅包括表结构,还包括...
描述中提到了“转mysql、数据库时表字段长度问题”,这暗示了在迁移过程中可能会遇到兼容性问题。转换表结构时,需要检查每个字段的数据类型和长度,确保在新环境中能正确存储数据。如果不做调整,可能会导致数据...
- **数据类型不兼容**:检查Shapefile字段类型与MySQL表字段类型是否兼容,如有需要,可以使用 ogr2ogr 的 `-nlt` 参数指定几何类型。 6. **优化与注意事项**:为了提高性能,可以考虑使用InnoDB引擎代替MyISAM,...
在MySQL企业管理器中,你可以直观地创建、修改和删除表字段,设置主键、外键、索引和触发器,确保数据完整性和一致性。 3. **数据操作**:该工具提供了丰富的数据操作功能,包括插入、更新、删除记录,以及执行SQL...
4. **数据库设计**:MySQL-Front支持创建和修改数据库结构,包括创建新表、修改表字段、设置索引、创建外键等。此外,还可以生成数据库脚本,用于备份或在其他环境中重建数据库结构。 5. **查询构建器**:为非技术...
4. 序列和自增ID处理:MySQL使用AUTO_INCREMENT关键字为表字段生成自增ID,而Oracle则通过序列(SEQUENCE)实现类似功能。转换工具需要处理这些自增ID,确保在Oracle中保持唯一性和连续性。 5. 权限和安全设置:...
数据库表字段的定义包括字段名称、数据类型、是否允许为空、默认值等属性,这些都必须在表创建阶段明确指定。 数据库管理系统(DBMS)是一套用于创建、操作、管理和查询数据库的软件工具。MySQL作为一个DBMS,提供...
5. **表和索引**:手册详细阐述了如何创建、修改和删除表,以及如何为表字段添加索引以提高查询速度,如主键索引、唯一索引、全文索引和复合索引等。 6. **视图**:视图是虚拟表,由一个或多个查询结果组成。手册将...
MySQL 是一种广泛使用的开源关系型数据库管理系统,它支持多种操作系统,并且提供了丰富的功能,包括数据表的创建、查询、更新和删除等操作。在MySQL中,创建数据表是构建数据库结构的基础步骤,它定义了表的结构,...
了解基本的表字段类型如INT、VARCHAR、DATE等也至关重要。 6. **数据查询**:SQL的SELECT语句用于从数据库中检索数据,可以进行复杂的筛选、排序和分组操作。JOIN语句用于连接多个表,以获取跨表的数据。 7. **...
- 使用ALTER TABLE语句为表字段添加索引。 11. 主从复制、MVCC机制与复制架构: - 主从复制:将主数据库的更新操作复制到从数据库。 - MVCC(多版本并发控制):一种用于实现并发控制的内部机制。 - 复制架构:...
8.3 创建索引:讲解如何为表字段创建索引,包括主键索引、普通索引和联合索引等,以及索引对查询性能的影响。 以上内容对MySQL数据库的管理和操作进行了全面的介绍和说明,对于数据库管理员或数据库操作者来说,...