2010-04-03 30 views
13

Tôi có một lĩnh vực như sau trong MySQL: Loại: Văn bản Length: 0 thập phân: 0MySQL kiểu dữ liệu: Văn bản ,,, erroring: Dữ liệu Too Long

Và khi tôi cố gắng để chèn dữ liệu xung quanh kích thước 4 trang của MS Word, lỗi Coldfusion với: Dữ liệu quá dài từ DB.

Tôi nghĩ loại dữ liệu TEXT có thể mở rộng và xử lý kích thước dữ liệu này? Tôi đang thiếu gì và tôi có thể làm gì?

Trả lời

3

chữ chiết xuất từ:

MySQL 5.1 Reference Manual :: 10 Data Types :: 10.1 Data Type Overview :: 10.1.3 Overview of String Types

TEXT[(M)] [CHARACTER SET charset_name] [COLLATE collation_name] 

A TEXT column with a maximum length of 65,535 (2^16 – 1) characters. 

Độ dài tối đa hiệu quả là ít nếu giá trị chứa đa byte ký tự. Mỗi giá trị TEXT được lưu trữ sử dụng tiền tố có độ dài hai byte mà cho biết số byte trong giá trị .

Độ dài tùy chọn M có thể được cung cấp cho loại này. Nếu điều này được thực hiện, MySQL sẽ tạo cột là loại TEXT nhỏ nhất đủ lớn để giữ các giá trị Ký tự M dài.

Tôi nghĩ bạn nên sử dụng BLOB cho cột đó.

MySQL 5.0 Reference Manual :: 10 Data Types :: 10.4 String Types :: 10.4.3 The BLOB and TEXT Types

+0

Ưu điểm/nhược điểm của BLOB so với TEXT hoặc LONGTEXT là gì? – AnApprentice

+0

Đọc liên kết cuối cùng ở trên để tìm sự khác biệt giữa BLOB và kiểu dữ liệu Văn bản. –

24

Loại TEXT được giới hạn 2^16 byte, hoặc 65536 byte. Thay vào đó, hãy thử sử dụng loại LONGTEXT. Ứng dụng có thể giữ giá trị tối đa 2^32 byte.

+0

Có bất kỳ tích cực/tiêu cực nào đối với việc chuyển từ TEXT sang LONGTEXT không? – AnApprentice

+1

@nobosh: LONGTEXT yêu cầu 2 byte lưu trữ nhiều hơn mỗi hàng so với TEXT. Xem: http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html –

Các vấn đề liên quan