回答
舊的mysql?
5和更新可以使用LONG VARCHAR
http://dev.mysql.com/doc/refman/5.0/en/char.html
值在VARCHAR列是 可變長度字符串。可以將指定長度爲 的值設置爲MySQL 5.0.3之前的0至 255,0.0.3及更高版本中的0至 65,535。 在MySQL 5.0.3一個 VARCHAR的有效最大長度和後面是 受到的最大行大小 (65535個字節,這是其中 所有列共用)和 所使用的字符集。
新。我可以將varchar設置爲1000,但前提是它沒有設置爲唯一。 – AleGore 2010-03-04 17:27:09
取決於你所使用的MySQL版本中,5.0.3之前有對VARCHAR 255個字符的限制:
價值觀VARCHAR列 變長字符串。可以將指定長度爲 的值設置爲MySQL 5.0.3之前的0至 255,0.0.3及更高版本中的0至 65,535。
圍繞MySQL手冊小訪問應是有用的: http://dev.mysql.com/doc/refman/5.0/en/char.html
價值觀VARCHAR列是可變長度的字符串。在MySQL 5.0.3之前,長度可以指定爲0到255之間的值,5.0.3和更高版本中的長度可以爲0到65,535。 MySQL 5.0.3及更高版本中VARCHAR的有效最大長度取決於最大行大小(65,535字節,在所有列中共享)和使用的字符集。
附加: 鍵值長度不能超過500個字符。 (報告爲http://bugs.mysql.com/bug.php?id=2130)
太多了。 4個答案和所有引用從同一頁,哈哈。 – 2010-03-04 17:26:59
此處列出了另一個限制。這個限制就是答案。 – osgx 2010-03-04 17:29:43
下一步的長度可能是text
,儘管據我所知有一些非常巨大的數據庫內長度限制,如果有的話,所以你必須提供限制編程sql /後端應用程序邏輯。
更新:
也許它與最大密鑰長度做1000的字節:
的最大密鑰長度爲1000個字節。這也可以通過改變源代碼和重新編譯來改變。對於密鑰長度超過250個字節的情況,使用比缺省值1024字節更大的密鑰塊大小。
由於索引是爲鍵創建的,而且它沒有索引而工作,所以這是有道理的。
儘管如此,您可以在varchar
列中使用大於1000字節的索引,如下面的答案中所示。
或者,如果你正使用InnoDB,然後有一些restrictions:
索引鍵的前綴可高達767個字節。請參見第12.1.8節「CREATE INDEX語法」。
我認爲它是確保該指數並沒有得到太大,工作接受快。
如果字符串列很可能在第一個字符數上有一個唯一的前綴,那麼最好只索引這個前綴,使用MySQL支持在列的最左邊部分創建一個索引(請參見第12.1.8節「CREATE INDEX語法」)。 較短的索引速度更快,這不僅僅是因爲它們需要較少的磁盤空間,還因爲它們還會在索引緩存中爲您提供更多的點擊量,從而減少磁盤查找次數。請參見第7.5.3節「調整服務器參數」。
這意味着您還可以定義應該被索引的列的第一個n
字符。也許這有助於規避問題。
例子:
CREATE INDEX part_of_name ON customer (name(10));
- 1. MySQL - 存儲在varchar長度爲1000
- 2. 爲什麼我不能將list.size設置爲我的整型數組的長度?
- 3. 爲什麼VARCHAR需要長度指定?
- 4. 爲什麼我不能設置導航標籤的寬度
- 5. 爲什麼我不能設置cookie?
- 6. 爲什麼我不能將圖像設置爲我的UITableViewCell?
- 7. 爲什麼我不能將我的QDialog設置爲沒有sizeGrip?
- 8. 爲什麼Django將外鍵的最大長度設置爲auth.User.username?
- 9. 爲什麼我不能將「this」設置爲C#中的值?
- 10. 使用CAST時,爲什麼30是VARCHAR的默認長度?
- 11. 爲什麼我不能設置我的視圖的重力
- 12. 爲什麼我不能使用jQuery設置相同的高度和寬度?
- 13. 爲什麼我不能設置我的Cookie持續時間cakePHP
- 14. 爲什麼我不能在我的代碼中輸入設置?
- 15. 爲什麼我不能在CABasicAnimation完成後設置圖層的不透明度?
- 16. 爲什麼jQuery.merge設置手動返回值的長度?
- 17. 爲什麼我不能將ng樣式設置爲節點?
- 18. 爲什麼我不能在Apache Commons中將Transformer設置爲LazyList?
- 19. SQL:爲什麼我不能爲查詢結果設置變量?
- 20. 爲什麼我不能將文本設置爲Android TextView?
- 21. 爲什麼我不能將此密鑰設置爲$ _SESSION?
- 22. 爲什麼我不能直接將__int64變量設置爲-2500000000?
- 23. 爲什麼我不能將$ _SERVER ['DOCUMENT_ROOT']設置爲屬性?
- 24. 爲什麼我不能爲div設置價值?
- 25. Javascript - 爲什麼我不能將style.color設置爲變量?
- 26. 爲什麼我不能爲文字設置透明顏色
- 27. 爲什麼我不能在iOS中將mapView.showsUserLocation設置爲YES?
- 28. 爲什麼我不能將值設置爲在div中顯示?
- 29. 爲什麼我不能將它設置爲字符串?
- 30. 爲什麼我不能爲UILabel設置文本屬性?
我的數據庫是MySQL的5.0.45 – AleGore 2010-03-04 17:29:33
745的限制是因爲InnoDB的數據庫類型的限制(應該是多一點,但我認爲這是連接):*指數關鍵字前綴可以達到767字節。請參見第12.1.8節「CREATE INDEX語法」。http://dev.mysql.com/doc/refman/5.0/en/innodb-restrictions.html另請參閱我的答案。 – 2010-03-04 17:43:27