2015-06-25 44 views
1

我試圖使用SQLyog將現有表中的一列從Varchar(5000)更改爲Varchar(10000)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; 

還是看create table語句:

​​
+0

我不明白的DESCRIBE顯示的大小查詢。 varchar(5000)列顯示「13B」,與varchar(2000)的列相同? – maxhugen

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'