SQL max/min length for all columns

SELECT CONCAT(GROUP_CONCAT( 
CONCAT('(SELECT \'',COLUMN_NAME,'\' AS `column`, MAX(CHAR_LENGTH(`',COLUMN_NAME,'`)) AS `max_length`, MIN(CHAR_LENGTH(`',COLUMN_NAME,'`)) AS `min_length` ',
'FROM `',TABLE_SCHEMA,'`.`',TABLE_NAME, '`)')
SEPARATOR ' UNION ALL '), ';') AS sql_query
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'DB_NAME' AND TABLE_NAME = 'TABLE_NAME';

Change DB_NAME and TABLE_NAME
see diff lenght vs char_length

increase the limit of GROUP_CONCAT()

The longest string returned by GROUP_CONCAT() is 1024 by default. Because of that you need to increase this limit.

SET group_concat_max_len = 1024;

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.