我尝试使用SQLyog更改现有表格中的一列,从Varchar(5000)
更改为Varchar(10000)
。
这导致错误:
行大小太大。使用的表类型的最大行大小,而不是 计算BLOB,是65535.这包括存储开销,检查 手册。您必须将某些列更改为TEXT或BLOB。
我从这个论坛了解到我需要将这个较大的Varchar
字段更改为Text - 我认为该字段存储在'外面。 Innodb
中的表格 - 但我有兴趣查看表格的所有列的列表及其使用的大小。
任何人都可以建议查询等,可以这样做吗?
答案 0 :(得分:2)
查看information_schema.COLUMNS表,它有很多这样的细节。
这是获取任何表的varchar列及其长度的查询 -
SELECT COLUMN_NAME, CHARACTER_MAXIMUM_LENGTH
FROM information_schema.COLUMNS AS ins
WHERE ins.TABLE_NAME = '<your table name>' AND ins.DATA_TYPE = 'varchar'
答案 1 :(得分:0)
要查看表格的所有列的列表及其使用的大小,您可以运行:
describe my_table;
或者查看create table语句:
show create table my_table;