mysql 唯一索引UNIQUE一般用于不重復(fù)數(shù)據(jù)字段了我們經(jīng)常會在數(shù)據(jù)表中的id設(shè)置為唯一索引UNIQUE,下面我來介紹如何在mysql中使用唯一索引UNIQUE吧.
創(chuàng)建唯一索引的目的不是為了提高訪問速度,而只是為了避免數(shù)據(jù)出現(xiàn)重復(fù),唯一索引可以有多個但索引列的值必須唯一,索引列的值允許有空值,如果能確定某個數(shù)據(jù)列將只包含彼此各不相同的值,在為這個數(shù)據(jù)列創(chuàng)建索引的時候就應(yīng)該使用關(guān)鍵字UNIQUE.
把它定義為一個唯一索引,創(chuàng)建唯一索的方法.
操作表,代碼如下:
- CREATE TABLE `wb_blog` (
- `id` smallint(8) unsigned NOT NULL,
- `catid` smallint(5) unsigned NOT NULL DEFAULT '0',
- `title` varchar(80) NOT NULL DEFAULT '',
- `content` text NOT NULL,
- PRIMARY KEY (`id`),
- )
1、創(chuàng)建唯一索可以使用關(guān)鍵字UNIQUE隨表一同創(chuàng)建,代碼如下:
- mysql> CREATE TABLE `wb_blog` (
- -> `id` smallint(8) unsigned NOT NULL,
- -> `catid` smallint(5) unsigned NOT NULL DEFAULT '0',
- -> `title` varchar(80) NOT NULL DEFAULT '',
- -> `content` text NOT NULL,
- -> PRIMARY KEY (`id`),
- -> UNIQUE KEY `catename` (`catid`)
- //Vevb.com
- -> ) ;
- 9 Query OK, 0 rows affected (0.24 sec)
上面代碼為wb_blog表的'catid'字段創(chuàng)建名為catename的唯一索引.
2、在創(chuàng)建表之后使用CREATE命令來創(chuàng)建,代碼如下:
- mysql> CREATE UNIQUE INDEX catename ON wb_blog(catid);
- uery OK, 0 rows affected (0.47 sec)
如果不需要唯一索引,則可以這樣刪除,代碼如下:
- mysql> ALTER TABLE wb_blog DROP INDEX catename;
- uery OK, 0 rows affected (0.85 sec)
如果要增加索引,代碼如下:
alter table user add unique index(user_id,user_name);
注意,唯一索引.
它與前面的"普通索引"類似,不同的就是,索引列的值必須唯一,但允許有空值,如果是組合索引,則列值的組合必須唯一,它有以下幾種創(chuàng)建方式:
(1)創(chuàng)建索引:CREATE UNIQUE INDEX indexName ON tableName(tableColumns(length))
(2)修改表結(jié)構(gòu):ALTER tableName ADD UNIQUE [indexName] ON (tableColumns(length))
(3)創(chuàng)建表的時候直接指定:CREATE TABLE tableName ( [...], UNIQUE [indexName] (tableColumns(length));
3.主鍵索引
它是一種特殊的唯一索引,不允許有空值,一般是在建表的時候同時創(chuàng)建主鍵索引,CREATE TABLE testIndex(i_testID INT NOT NULL AUTO_INCREMENT,vc_Name VARCHAR(16) NOT NULL,PRIMARY KEY(i_testID));當(dāng)然也可以用ALTER命令.
新聞熱點
疑難解答
圖片精選