2012-03-22 63 views
0

我正在運行動態查詢的基礎上添加刪除字段的類別。 下面是一個例子查詢:爲什麼這個ALTER TABLE MYSQL查詢不能執行(返回false)?語法顯示正確

ALTER TABLE se_classifiedvalues 
    ADD classifiedvalue_402 varchar(250) NOT NULL default '' 

MYSQL不抱怨的語法,但返回false當我VAR傾倒查詢。當我扔的查詢到phpMyAdmin的,並試圖執行它扔這個SQL:

#1118 - Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs 

任何一個有任何想法,我能做些什麼來解決這個問題?

謝謝

+0

任何方式來擴大這個限制或我必須重組? – Rooster 2012-03-22 14:48:04

+1

除了創建一些BLOB(即。TEXT)列外,沒有辦法進行擴展,因爲實際內容存儲在行外,所以會減少行中的存儲空間。奇怪的是,這正是錯誤所說的。 :) – 2012-03-22 14:49:30

回答

5

此表中已有多少列? 402? (我希望不是)。 MySQL對於它可以存儲在表的一行中的數據量(字節)有限制,並且看起來您已經達到了該限制。

編輯: 這裏有一個關於MySQL的網站,在這裏你可以閱讀有關數據限制鏈接:http://dev.mysql.com/doc/refman/5.0/en/column-count-limit.html

我認爲你需要重新考慮你的數據結構。

旁邊的問題:你在使用ExpressionEngine嗎?

+1

+1爲「我希望不是」。我也是! – cmbuckley 2012-03-22 14:46:57

+0

b。大。看起來我必須重組。我希望沒有必要,但客戶做出了荒謬的要求。 – Rooster 2012-03-22 14:47:05

+0

沒有402那只是自動增量鍵值。 402中的一些被刪除。我不太確定,它是一箇舊的框架,我希望不要用動態場生成器來重寫某些部分。 – Rooster 2012-03-22 14:49:28

2

使所有列的總大小小於限制65,535字節。請注意,UTF8列計爲每個字符3個字節。

65,535是以字節爲單位的最大行大小。

MySQL

在MySQL 5.0.3一個VARCHAR的有效最大長度和後面是 受到的最大行大小(65535個字節,這是其中 所有列共用)和字符設置使用。

相關問題