MySQL中如何设置唯一索引,联合索引?

MySQL中如何设置唯一索引,联合索引?,第1张

1.UNIQUE 关键字建唯一索引\x0d\x0amysql>CREATE TABLE `wb_blog` ( \x0d\x0a-> `id` smallint(8) unsigned NOT NULL, \x0d\x0a-> `catid` smallint(5) unsigned NOT NULL DEFAULT '0', \x0d\x0a-> `title` varchar(80) NOT NULL DEFAULT '', \x0d\x0a -> `content` text NOT NULL, \x0d\x0a -> PRIMARY KEY (`id`), \x0d\x0a-> UNIQUE KEY `catename` (`catid`) \x0d\x0a->) \x0d\x0a如果建好表了,可以用以下语句建\x0d\x0a mysql>CREATE UNIQUE INDEX catename ON wb_blog(catid) \x0d\x0a\x0d\x0a2.联合索引\x0d\x0aALTER TABLE `tasks`\x0d\x0aADD INDEX `testabc` (`title`, `created`) \x0d\x0a\x0d\x0a3联合唯一索引(假设有这个需求,在同一天内不能建两个tiltle一样的任务)\x0d\x0aALTER TABLE `tasks`\x0d\x0aADD UNIQUE INDEX `testabc` (`title`, `created`) \x0d\x0a\x0d\x0a数据库建索引的科学性事关数据库性能,索引也不是越多越好。

1. 建表时加上唯一性约束

CREATE TABLE `t_user` (

`Id` int(11) NOT NULL AUTO_INCREMENT,  -- 自增

`username` varchar(18) NOT NULL unique,  -- 唯一性约束

`password` varchar(18) NOT NULL,

PRIMARY KEY (`Id`)

) ENGINE=InnoDB AUTO_INCREMENT=1018 DEFAULT CHARSET=gbk

2.给已经建好的表加上唯一性约束

ALTER TABLE `t_user` ADD unique(`username`)

参考资料

csdn.csdn[引用时间2018-1-9]

有两种方法:

1.

字段设置为主码(一个表只能定义一个主码):

a.创建表时设置主码:语句格式

create

teable

表名(

字段名

类型及长度

primary

key,...)

b.创建完表后给表添加主码(前提条件:表无主码,且将要设置为主码的列必须不允许空值、已存在的值不允许重复)

alter

table

表名

add

primary

key(列名)

2.

设置字段为唯一值约束(一个表可以定义多个唯一值约束):

a.

创建表时设置唯一值约束

create

table

表名(...

,

字段名

类型及长度

unique,

...)

b.创建完表后添加唯一值约束(前提条件:将要设置唯一值约束的列已存在的值必须不重)

alter

table

表名

add

unique(列名)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10010957.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存