使用数据操纵语句的模式的示例

一个使用 INSERT 语句的示例可说明启用模式、禁用模式与过滤模式之间的差异。请考虑这样一条 INSERT 语句,其中一个用户试图在表上添加不满足完整性约束的一行。例如,假设用户 joe 创建了名为 cust_subset 的表,且此表由下列列构成:ssn(客户的社会保险编号)、fname(客户的名)、lname(客户的姓)以及 city(客户生活的城市)。ssn 列具有 INT 数据类型。其他三列有 CHAR 数据类型。

假设用户 joe 定义了 lname 列为非空,但尚未将名称指定给非空约束,于是,数据库服务器已隐式地将名称 n104_7 指定给此约束。最后,假设用户 joessn 列上创建了名为 unq_ssn 的唯一索引。

现在,对 cust_subset 有 Insert 权限的用户 linda 在此表上输入下列 INSERT 语句:
INSERT INTO cust_subset (ssn, fname, city)
          VALUES (973824499, "jane", "los altos");

要更好地理解启用模式、禁用模式与过滤模式之间的区别,您可在下面三个部分中查看前面的 INSERT 语句的结果。