使用唯一约束(UNIQUE)指定某属性列,标识该列不会存在重复值,即该列中每一个值都是唯一的。需要注意的是,唯一约束下的列可以存在NULL值,而且NULL可以存在多个。
例如:新建一张nation表,如表3-32所示,并指定唯一约束。
表3-32 nation表结构
执行下面的SQL语句,创建nation表,表中n_nationkey字段表示国家代号,n_name字段为国家名称。
CREATE TABLE nation(
n_nationkey INTEGER,
n_name VARCHAR(25)
);
接下来为n_nationkey字段增加UNIQUE约束,然后插入数据记录进行检验,SQL语句具体如下。
ALTER TABLE nation ADD CONSTRAINT uk_nation_idunique UNIQUE (n_nationkey);
INSERT INTO nation (n_nationkey, n_name) VALUES (0, ‘china’);
INSERT INTO nation (n_nationkey, n_name) VALUES (0, ‘china1’);
INSERT INTO nation (n_nationkey, n_name) VALUES (1, ‘china1’);
插入n_nationkey为0的数据后,再次插入(0, ‘china1’),会提示“unique constraint”约束,插入失败。修改n_nationkey后,插入(1, ‘china1’)数据成功。
至此,上述操作实例验证了唯一约束对有效数据的校验。
对于特殊的NULL值,执行如下两条SQL语句,可以看到NULL值正常插入,可以存在多个。
INSERT INTO nation(n_nationkey, n_name) VALUES(NULL,‘china2’);
INSERT INTO nation(n_nationkey, n_name) VALUES(NULL,‘china3’);
SQL语句执行结果字段状态如图3-6所示。

图3-6 SQL执行结果字段状态表
例如:新建一张nation表,如表3-32所示,并指定唯一约束。
表3-32 nation表结构
| nation | ||
| Column | n_nationkey | n_name |
| Type | INTEGER | VARCHAR |
CREATE TABLE nation(
n_nationkey INTEGER,
n_name VARCHAR(25)
);
接下来为n_nationkey字段增加UNIQUE约束,然后插入数据记录进行检验,SQL语句具体如下。
ALTER TABLE nation ADD CONSTRAINT uk_nation_idunique UNIQUE (n_nationkey);
INSERT INTO nation (n_nationkey, n_name) VALUES (0, ‘china’);
INSERT INTO nation (n_nationkey, n_name) VALUES (0, ‘china1’);
INSERT INTO nation (n_nationkey, n_name) VALUES (1, ‘china1’);
插入n_nationkey为0的数据后,再次插入(0, ‘china1’),会提示“unique constraint”约束,插入失败。修改n_nationkey后,插入(1, ‘china1’)数据成功。
至此,上述操作实例验证了唯一约束对有效数据的校验。
对于特殊的NULL值,执行如下两条SQL语句,可以看到NULL值正常插入,可以存在多个。
INSERT INTO nation(n_nationkey, n_name) VALUES(NULL,‘china2’);
INSERT INTO nation(n_nationkey, n_name) VALUES(NULL,‘china3’);
SQL语句执行结果字段状态如图3-6所示。

图3-6 SQL执行结果字段状态表
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




