关于MySQL数据库的unique约束,建表时unique(name),unique(pass)和unique(name,pass)有什么区别?

createtabletest(namevarchar(255),passvarchar(255),unique(name),unique(pass));createta... create table test(
name varchar(255),
pass varchar(255),
unique (name),
unique(pass)
);

create table test(
name varchar(255),
pass varchar(255),
unique (name,pass)
);
区别?
展开
 我来答
阳光上的桥
推荐于2017-10-14 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21423 获赞数:65813
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部
对于你这个例子,一般做法是:
primary key name

这表示本表的name字段不允许重复,而且也不允许为空,对pass字段没有任何限制,这是我们实际需要的。

unique (name)表示限制表中的name字段不允许重复,这个可以理解,因为一般一个用户只允许一个密码。

unique (pass)表示限制表中的pass字段不允许重复,这意味着不允许两个用户使用相同密码,这个要求不合常理。

unique (name,pass)表示限制表中的name、pass两个字段的组合不允许重复,允许单独的name或者pass字段重复,其表示的含义是允许一个用户有多个不同的密码。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式