关于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)
);
区别? 展开
name varchar(255),
pass varchar(255),
unique (name),
unique(pass)
);
create table test(
name varchar(255),
pass varchar(255),
unique (name,pass)
);
区别? 展开
1个回答
展开全部
对于你这个例子,一般做法是:
primary key name
这表示本表的name字段不允许重复,而且也不允许为空,对pass字段没有任何限制,这是我们实际需要的。
unique (name)表示限制表中的name字段不允许重复,这个可以理解,因为一般一个用户只允许一个密码。
unique (pass)表示限制表中的pass字段不允许重复,这意味着不允许两个用户使用相同密码,这个要求不合常理。
unique (name,pass)表示限制表中的name、pass两个字段的组合不允许重复,允许单独的name或者pass字段重复,其表示的含义是允许一个用户有多个不同的密码。
primary key name
这表示本表的name字段不允许重复,而且也不允许为空,对pass字段没有任何限制,这是我们实际需要的。
unique (name)表示限制表中的name字段不允许重复,这个可以理解,因为一般一个用户只允许一个密码。
unique (pass)表示限制表中的pass字段不允许重复,这意味着不允许两个用户使用相同密码,这个要求不合常理。
unique (name,pass)表示限制表中的name、pass两个字段的组合不允许重复,允许单独的name或者pass字段重复,其表示的含义是允许一个用户有多个不同的密码。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询