MySQL修改数据类型的问题总结(2)

> alter table `activity_dj_actor_info_log` change `id` `id` bigint  NOT NULL AUTO_INCREMENT , add primary key(id);
 Query OK, 3144627 rows affected (1 min 32.32 sec)
 Records: 3144627  Duplicates: 0  Warnings: 0

> show create table activity_dj_actor_info_log\G
 *************************** 1. row ***************************
        Table: activity_dj_actor_info_log
 Create Table: CREATE TABLE `activity_dj_actor_info_log` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `cnMaster` varchar(50) NOT NULL,
  。。。
  PRIMARY KEY (`id`),
  UNIQUE KEY `dss_cnMaster` (`cnMaster`,`serverId`,`guid`) USING BTREE
 ) ENGINE=InnoDB AUTO_INCREMENT=2150192178 DEFAULT CHARSET=utf8
和开发的同事简单沟通之后,没过一会查看就发现数值是递增了。
> select max(id) from activity_dj_actor_info_log;
 +------------+
 | max(id)    |
 +------------+
 | 2150195418 |
 +------------+
而对于这个问题,自己也简单总结了下,其实最开始处理的时候就不严谨,导致了后面的不断修复,如果一步到位就不会有这么多的麻烦了。
 所以在本地有简单测试了下。

CREATE TABLE `activity_dj_actor_info_log` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `cnMaster` varchar(50) NOT NULL,
。。。
  PRIMARY KEY (`id`),
  UNIQUE KEY `dss_cnMaster` (`cnMaster`,`serverId`,`guid`) USING BTREE
 ) ENGINE=InnoDB AUTO_INCREMENT=2147483647 DEFAULT CHARSET=utf8;
插入一部分测试数据。
> insert into activity_dj_actor_info_log select *from activity_log.activity_dj_actor_info_log limit 1,1000;
 Query OK, 1000 rows affected (0.07 sec)
 Records: 1000  Duplicates: 0  Warnings: 0
修改表字段数据类型
> alter table activity_dj_actor_info_log modify  `id` bigint  NOT NULL AUTO_INCREMENT;
 Query OK, 1000 rows affected (0.43 sec)
 Records: 1000  Duplicates: 0  Warnings: 0
再次查看递增序列就修改完善了。
> show create table activity_dj_actor_info_log;
 | Table                      | Create Table     
 | activity_dj_actor_info_log | CREATE TABLE `activity_dj_actor_info_log` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `cnMaster` varchar(50) NOT NULL,
  。。。
  PRIMARY KEY (`id`),
  UNIQUE KEY `dss_cnMaster` (`cnMaster`,`serverId`,`guid`) USING BTREE
 ) ENGINE=InnoDB AUTO_INCREMENT=2147483647 DEFAULT CHARSET=utf8
 1 row in set (0.00 sec)

在这一点上,Oracle的处理和MySQL还是存在一些区别,还是需要严格区别对待。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/dc911505bca7d95f975268b45d97bc00.html