mysql5.6.46添加自增加字段导出与测试

项目背景

从gbase8a中迁移业务表到mysql库,遇到以下三个问题
1、mysql数据库名不规范,无法从库名了解是来自来那个业务系统,那种数据库类型,数据库名。
2、业务表基本上没有自增字段与自增加时间字段,为了后期对迁移的数据做二次处理,这里给1000多张表添加自增字段与自增加时间字段,现在这一千多张都有业务数据,有20张600万到5000千万的表,有2张上亿级宽表。
3、表和列缺少相应的注释

系统环境

1、centos7.5+mysql5.6.46
2、目前对该库没有做写操作
3、一共5个库

处理方案

1、直接在现有的库进行添加字段操作 、表注释列注释,再将数据导出来,重新建表,再导回数据
2、重新创建一个新库,将老库上的表结构同步到新库,在新库上添加自增字段与自增加时间字段、相应表注释列注释,最后将老库上的数据导入到的新库。

实施

这里采用第二种方案,数据迁移有多种方式实现,这里采用mysql数据库自带的工具mysqldump来实现,但有两点需要注意一下。
1、导出的sql语句不能带有创建数据库和创建表的sql语句
2、需要导出完整的sql语句,如inert into aa(col1,col2) values(1,2)

示例

1、mysqldump -uroot -p1234 -S /data/mysql_13306/mysql.sock -t db1 -c --single-transaction > test3.sql
LOCK TABLES aa WRITE;
/*!40000 ALTER TABLE aa DISABLE KEYS /;
INSERT INTO aa (id, name, gen_id, gen_datetime) VALUES (1,‘aa’,1,‘2020-06-09 22:22:30’),(2,‘bb’,2,‘2020-06-09 22:22:30’);
/
!40000 ALTER TABLE aa ENABLE KEYS */;
UNLOCK TABLES;

2、mysqldump -uroot -p1234 -S /data/mysql_13306/mysql.sock -t db1 --single-transaction > test4.sql
LOCK TABLES aa WRITE;
/*!40000 ALTER TABLE aa DISABLE KEYS /;
INSERT INTO aa VALUES (1,‘aa’,1,‘2020-06-09 22:22:30’),(2,‘bb’,2,‘2020-06-09 22:22:30’);
/
!40000 ALTER TABLE aa ENABLE KEYS */;
UNLOCK TABLES;

总结

1、通过mysqldump 加-t 数据名,导出的sql不会有带有创建数据库和创建表的sql语句
2、通过mysqldump 加-c 数据名, 导出的sql如示例1(想要的结果)
3、如果表中已经存在记录了,添加自增字段且为主键和默认时间字段,自增字段会从1开始自动生成,默认时间是一样。
mysql> desc aa;
±------±-------------±-----±----±--------±------+
| Field | Type | Null | Key | Default | Extra |
±------±-------------±-----±----±--------±------+
| id | int(11) | YES | | NULL | |
| name | varchar(100) | YES | | NULL | |
±------±-------------±-----±----±--------±------+
2 rows in set (0.00 sec)

mysql> alter table aa add column gen_id int not null auto_increment primary key;
Query OK, 0 rows affected (0.14 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> alter table aa add column gen_datetime datetime default current_timestamp;

mysql> select * from aa;
±-----±-----±-------±--------------------+
| id | name | gen_id | gen_datetime |
±-----±-----±-------±--------------------+
| 1 | aa | 1 | 2020-06-09 22:22:30 |
| 2 | bb | 2 | 2020-06-09 22:22:30 |
±-----±-----±-------±--------------------+
2 rows in set (0.00 sec)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值