此文章主要向大家描述的是MySQL自增主键与TEXT数据类型的正确使用方案, 有时我们会用到MySQL数据库,并且还要用到起自增主键与TEXT数据类型。为了防止忘记,先记录下TEXT数据类型长度:
- TINYTEXT: 256 bytes
- TEXT: 65,535 bytes => ~64kb
- MEDIUMTEXT: 16,777,215 bytes => ~16MB
- BIGTEXT: 4,294,967,295 bytes => ~4GB
我要建的表,主键使用自增数字,有一个数据列要使用TEXT数据类型存放文本,则可写SQL如下:
- CREATE TABLE Corpus
- (
- id MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT,
- data TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
- PRIMARY KEY (id)
)先解释两个概念:
字符集是一套符号和编码。CHARACTER SET X 表示设置字符集为X。
校对规则是在字符集内用于比较字符的一套规则。存在校对规则命名约定:它们以其相关的字符集名开始,通常包括一个语言名,并且以_ci(大小写不敏感)、_cs(大小写敏感)或_bin(二元)结束。
COLLATE utf8_general_ci 表示utf8_general的不区分大小写的校对规则(貌似是utf8字符集的默认校对规则,使用“show collation like ‘utf8%’;”查看)。 其中表名为Corpus。主键为id,使用MEDIUMINT数据类型,可以表示1-999999间整数(大概值,不准确,便于记忆~);UNSIGNED表示无符号型;AUTO_INCREMENT表示自增。data列使用TEXT数据类型,并且设置该列的字符集为utf8,校对规则为utf8_general且大小写不敏感。
上述的相关内容就是对MySQL自增主键以及TEXT数据类型使用的描述,希望会给你带来一些帮助在此方面。
【编辑推荐】