Mas*_*ask 135 mysql indexing sql-drop
Create Table: CREATE TABLE `fuinfo` (
`fid` int(10) unsigned NOT NULL,
`name` varchar(40) NOT NULL,
`email` varchar(128) NOT NULL,
UNIQUE KEY `email` (`email`),
UNIQUE KEY `fid` (`fid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
Run Code Online (Sandbox Code Playgroud)
我想放下独特的钥匙email,怎么样?
Wae*_*oul 270
您只需使用以下SQL脚本删除MySQL中的索引:
alter table fuinfo drop index email;
Run Code Online (Sandbox Code Playgroud)
小智 60
有一种更好的方法,不需要你改变表格:
mysql> DROP INDEX email ON fuinfo;
Run Code Online (Sandbox Code Playgroud)
其中email是唯一键(索引)的名称.
你也可以像这样把它带回来:
mysql> CREATE UNIQUE INDEX email ON fuinfo(email);
Run Code Online (Sandbox Code Playgroud)
IDEX之后的电子邮件是索引的名称,它不是可选的.您可以使用KEY而不是INDEX.
此外,还可以创建(删除)多列唯一的内容:
mysql> CREATE UNIQUE INDEX email_fid ON fuinfo(email, fid);
mysql> DROP INDEX email_fid ON fuinfo;
Run Code Online (Sandbox Code Playgroud)
如果您没有指定多列索引的名称,则可以将其删除:
mysql> DROP INDEX email ON fuinfo;
Run Code Online (Sandbox Code Playgroud)
其中email是列名.
mysql> DROP INDEX电子邮件ON fuinfo;
其中email是唯一键(而不是列名).您可以找到唯一键的名称
mysql> SHOW CREATE TABLE fuinfo;
Run Code Online (Sandbox Code Playgroud)
在这里,您可以看到唯一键的名称,例如,可以是email_2.所以...
mysql> DROP INDEX email_2 ON fuinfo;
mysql> DESCRIBE fuinfo;
Run Code Online (Sandbox Code Playgroud)
这应该表明索引已被删除
小智 5
使用以下查询:
ALTER TABLE `table_name` DROP INDEX key_name;
Run Code Online (Sandbox Code Playgroud)
如果你不知道key_name然后首先尝试下面的查询,你可以获得key_name.
SHOW CREATE TABLE table_name
Run Code Online (Sandbox Code Playgroud)
要么
SHOW INDEX FROM table_name;
Run Code Online (Sandbox Code Playgroud)
如果要从mysql表中删除/删除主键,请使用以下查询
ALTER TABLE `products` DROP INDEX `PRIMARY`;
Run Code Online (Sandbox Code Playgroud)
代码取自:http://chandreshrana.blogspot.in/2015/10/how-to-remove-unique-key-from-mysql.html
| 归档时间: |
|
| 查看次数: |
220017 次 |
| 最近记录: |