我对mysql中的主键和唯一约束有疑问。我正在为网站创建一个成员凭据表。有电子邮件地址,用户名,dob等属性。
我相信大多数网站都允许一个电子邮件地址与最多一个用户帐户相关联(不确定是否属实)。所以我将电子邮件设置为主键。但用户名也必须是唯一的,不能为空。我不知道如何表达这一点。我应该在用户名上创建一个唯一约束并明确声明它不为null吗?我不认为触发器适合这种情况。有更好的解决方案吗?感谢。
答案 0 :(得分:1)
尝试这样的事情,
CREATE TABLE tableName
(
userName VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL,
-- other columns here .....
CONSTRAINT tb_PK PRIMARY KEY (userName),
CONSTRAINT tb_uq UNIQUE (email)
)