mysql添加唯一索引(UNIQUE)

  • A+
所属分类:学习分享 数据库

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)

此时插入了一条记录。

接着再次执行:

mysql添加唯一索引(UNIQUE)

此时记录没有插入成功。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:2   其中:访客  2   博主  0

    • 成航先森 成航先森 1

      Warning: Use of undefined constant auto - assumed 'auto' (this will throw an Error in a future version of PHP) in /www/wwwroot/www.caiqz.cn/wp-content/themes/begin5.2/inc/inc.php on line 911

      复制的太明显~ :grin:

        • admin admin 0

          Warning: Use of undefined constant auto - assumed 'auto' (this will throw an Error in a future version of PHP) in /www/wwwroot/www.caiqz.cn/wp-content/themes/begin5.2/inc/inc.php on line 911

          @成航先森 我没复制,我只是照着敲的【手动滑稽】