云数据库 GaussDB-自增主键达到上限,无法插入数据:解决方案

时间:2023-11-01 16:16:29

解决方案

  1. 如果数据变化较多,表中实际数据量远小于自增主键的容量,则可以考虑将该表的数据全量导入新表,删除原表,然后rename将新表名改回原表名。(使用数据导入导出的方法有多种实现方法,此处仅举其中一种例子)
    1. 创建表auto_test5_tmp。
      create table auto_test5_tmp(id tinyint not null AUTO_INCREMENT, name varchar(8), PRIMARY KEY (`id`)); Query OK, 0 rows affected (0.07 sec) 
    2. 插入数据。
      insert into auto_test5_tmp select 0,name from auto_test5; Query OK, 6 rows affected (0.01 sec) Records: 6  Duplicates: 0  Warnings: 0 
    3. 查询表数据。
      select * from auto_test5_tmp; +----+------+ | id | name | +----+------+ |  1 | A    | |  2 | B    | |  3 | C    | |  4 | X    | |  5 | Y    | |  6 | Z    | +----+------+ 
    4. 删除表。
      drop table auto_test5; 
    5. 重命名。
      rename table auto_test5_tmp to auto_test5;Query OK, 0 rows affected (0.12 sec)  
  2. 如果自增主键的取值范围不够,则修改自增主键的字段类型。
    alter table auto_test6  modify column id int NOT NULL AUTO_INCREMENT; Query OK, 6 rows affected (0.15 sec) Records: 6  Duplicates: 0  Warnings: 0  
support.huaweicloud.com/trouble-gaussdb/gaussdb_trouble_0504.html