SELECT table_schema, table_name, data_type, ( CASE data_type WHEN 'tinyint' THEN 255 WHEN 'smallint' THEN 65535 WHEN 'mediumint' THEN 16777215 WHEN 'int' THEN 4294967295 WHEN 'bigint' THEN 18446744073709551615 end >> IF(Locate('unsigned', column_type) > 0, 0, 1) ) AS MAX_VALUE, AUTO_INCREMENT, AUTO_INCREMENT*100/( CASE data_type WHEN 'tinyint' THEN 255 WHEN 'smallint' THEN 65535 WHEN 'mediumint' THEN 16777215 WHEN 'int' THEN 4294967295 WHEN 'bigint' THEN 18446744073709551615 end >> IF(Locate('unsigned', column_type) > 0, 0, 1) ) AS percent_capacity FROM information_schema.columns INNER JOIN information_schema.tables USING (table_schema, table_name) WHERE table_schema NOT IN ( 'MYSQL', 'INFORMATION_SCHEMA', 'PERFORMANCE_SCHEMA') AND extra = 'auto_increment'