MySQL更改密钥的长度
简单的问题。如果我有如下表格:MySQL更改密钥的长度,mysql,Mysql,简单的问题。如果我有如下表格: 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键的长度?对于latin1ch
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
键的长度?对于latin1
charset,默认长度为767,对于UTF8,默认长度为255。但是,如果我有一个latin1
表,例如,如何更改键以强制最大长度为255?试试看
ALTER TABLE <table_name> MODIFY <col_name> VARCHAR(255);
altertablemodifyvarchar(255);
确保您的字符数不超过255个试试看
ALTER TABLE <table_name> MODIFY <col_name> VARCHAR(255);
altertablemodifyvarchar(255);
确保您的字符数不超过255个您可以在
VARCHAR(x)
列的前导部分创建索引。请看这里:
这将有助于搜索。但作为主键或使用groupby
时,它并不有用
您还可以在表定义中包括以下内容:
CREATE TABLE exampletable (
id int(11) NOT NULL AUTO_INCREMENT,
textfield varchar(700) DEFAULT NULL,
PRIMARY KEY (id),
KEY partial_textfield (textfield(10))
)
您可以在
VARCHAR(x)
列的前导部分创建索引。请看这里:
这将有助于搜索。但作为主键或使用groupby
时,它并不有用
您还可以在表定义中包括以下内容:
CREATE TABLE exampletable (
id int(11) NOT NULL AUTO_INCREMENT,
textfield varchar(700) DEFAULT NULL,
PRIMARY KEY (id),
KEY partial_textfield (textfield(10))
)
正如我从你的帖子中了解到的,如果不更改列本身的长度,就不可能更改键的长度?不。长度检查在列上。。。键是从列中“派生”出来的…正如我从你的帖子中了解到的,如果不更改列本身的长度,就不可能更改键的长度?不。长度检查在列上。。。键是从列“派生”的。。。