openshell 的个人博客

一天很长,但十年很短。

Open Source, Open Mind,
Open Sight, Open Future!
  menu
110 文章
5051 浏览
0 当前访客
ღゝ◡╹)ノ❤️

mysql添加唯一索引(UNIQUE)

1.添加PRIMARY KEY(主键索引) 

mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )

 

2.添加UNIQUE(唯一索引) 
mysql>ALTER TABLE `table_name` ADD UNIQUE ( `column` 

 

3.添加INDEX(普通索引) 

mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column` ) 

 

4.添加FULLTEXT(全文索引) 

mysql>ALTER TABLE `table_name` ADD FULLTEXT ( `column`) 

 

5.添加多列索引 
mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )


mysql删除索引


ALTER   TABLE   `table_name`   DROP  INDEX   name                //去掉unique唯一索引

ALTER   TABLE   'table_name'   DROP   FOREIGN   KEY   name     //去掉外键唯一索引

ALTER   TABLE   'table_name'   DROP   INDEX   KEY   name        //去掉主键索引




另外今天出现了遇到一个很奇怪的情况,在使用了UNIQUE为表中一个字段设置了唯一索引之后,我插入相同值的数据进行测试,报了1062 -Duplicate entry 错误,而且命令居然没有结束,我输了分号结束 ,它居然给我成功的添加了重复的值进去,让我瞬间怀疑人生了。

百度发现这个应该是由于之前的错误修改造成了表损坏,修复一下就行了

mysql> repair table t_user;


  ------续-----

通过NOT EXISTS判断重复,若重复则不插入


第一次执行:

mysql> INSERT INTO t_user(uname, upassword) SELECT 'nametest', '22' FROM DUAL WH

ERE NOT EXISTS(SELECT uname FROM t_user WHERE uname = 'nametest');

此时插入了一条记录。

接着再次执行:

此时记录没有插入成功。


标题:mysql添加唯一索引(UNIQUE)
作者:openshell
地址:http://solo.caiqz.cn/articles/2017/04/16/304.html