密钥只是普通索引。一种简化的方法是将其视为图书馆中的卡片目录。它为MySQL指明了正确的方向。
唯一键还用于提高搜索速度,但是它具有以下约束:不能有重复项(不存在两个x和y,其中x不是y且x == y)。
该手册对它的解释如下:
UNIQUE索引会创建约束,以使索引中的所有值都必须不同。如果您尝试添加键值与现有行匹配的新行,则会发生错误。除BDB存储引擎外,此约束不适用于NULL值。对于其他引擎,UNIQUE索引允许可以包含NULL的列使用多个NULL值。如果为UNIQUE索引中的列指定前缀值,则列值在前缀中必须唯一。
主键是“特殊”唯一键。它基本上是唯一的密钥,除了用于识别某些东西。
该手册说明了一般如何使用索引:此处。
在MSSQL中,概念相似。有索引,唯一约束和主键。
未经测试,但我相信等效的MSSQL是:
CREATE TABLE tmp ( id int NOT NULL PRIMARY KEY IDENTITY, uid varchar(255) NOT NULL ConSTRAINT uid_unique UNIQUE, name varchar(255) NOT NULL, tag int NOT NULL DEFAULT 0, description varchar(255),);CREATE INDEX idx_name ON tmp (name);CREATE INDEX idx_tag ON tmp (tag);
编辑:上面的代码经过测试是正确的;但是,我怀疑这样做有更好的语法。自从我使用SQL Server以来已有一段时间了,显然我已经忘记了很多:)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)