2015-06-25 3 views
1

Я попытался изменить один столбец в существующей таблице, от Varchar(5000) до Varchar(10000), используя SQLyog.MySQL: получить размер строки по столбцу

Это привело к ошибке:

Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs.

Я понимаю, на этом форуме, что мне нужно, чтобы изменить это большое Varchar поле для текста - который я предполагаю, хранится «снаружи» таблицы в Innodb - но я было бы интересно увидеть список всех столбцов таблицы и размер, который они используют.

Может кто-нибудь предложить запрос и т. Д., Чтобы это можно было сделать?

ответ

0

Чтобы увидеть список всех столбцов для таблицы и размера они используют, вы можете запустить:

describe my_table; 

Или увидеть создать таблицу заявление:

show create table my_table; 
+0

Я не понимаю, размер проявленные ОПИСАТЬ. В столбце varchar (5000) отображается «13B», что одинаково для столбца varchar (2000)? – maxhugen

2

Посмотрите в information_schema. COLUMNS, у него много таких деталей.

Это запрос для получения VARCHAR столбцов и их длину для любого table-

SELECT COLUMN_NAME, CHARACTER_MAXIMUM_LENGTH 
FROM information_schema.COLUMNS AS ins 
WHERE ins.TABLE_NAME = '<your table name>' AND ins.DATA_TYPE = 'varchar' 
Смежные вопросы