简单的问题。如果我有一个如下表:
CREATE TABLE `exampletable` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`textfield` varchar(700) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `textfield` (`textfield`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
如何更改textfield
KEY的长度?对于latin1
字符集,默认长度为767,而对于UTF8,则为255.但是,如果我有一个latin1
表,例如,如何更改密钥以强制最大长度为255?
答案 0 :(得分:1)
尝试
ALTER TABLE <table_name> MODIFY <col_name> VARCHAR(255);
请确保您的字符不超过255个
答案 1 :(得分:1)
您可以在VARCHAR(x)
列的主要部分创建索引。见这里:
http://dev.mysql.com/doc/refman/5.7/en/create-index.html
CREATE INDEX part_of_textfield ON example_table (textfield(10));
这将有助于搜索。但它作为主键或GROUP BY
无效。
您还可以将其包含在表定义中,如下所示:
CREATE TABLE exampletable (
id int(11) NOT NULL AUTO_INCREMENT,
textfield varchar(700) DEFAULT NULL,
PRIMARY KEY (id),
KEY partial_textfield (textfield(10))
)