如何查找整数列已达到最大值的所有表?

时间:2015-02-25 05:44:11

标签: mysql mysql5

我的主键是整数。 我收到错误#1062 - 下次插入时键'PRIMARY'的重复条目'4294967295'。

原因:显然达到了最大值。

有什么方法可以找到所有表的整数列已达到最大值或接近达到最大值以避免此类错误

2 个答案:

答案 0 :(得分:0)

查询:

SELECT 
      id, IF(max(id)<4294967295, 'true', 'false') as insert_flag
FROM Table
  

注意:我在上面的查询中检查了max id的值是否小于   然后是Int Range( 4294967295 )。查询返回true和false   insert_flag列。您可以在插入之前在代码中进行检查。

答案 1 :(得分:0)

如果您将id视为某种AUTO_INCREMENT字段,那么您可以使用show table status获取所有表格的此信息(请使用help show table status了解详情)。

e.g。

mysql> show table status \G
*************************** 1. row ***************************
           Name: test_table
         Engine: InnoDB
        Version: 10
     Row_format: Compact
           Rows: 0
 Avg_row_length: 0
    Data_length: 16384
Max_data_length: 0
   Index_length: 65536
      Data_free: 0
 Auto_increment: 2
    Create_time: 2014-11-07 13:17:16
    Update_time: NULL
     Check_time: NULL
      Collation: latin1_swedish_ci
       Checksum: NULL
 Create_options: 
        Comment: 
1 row in set (0.00 sec)