医院做网站运维,公司做网站还是做app,绵阳网站建设设计,自留地wordpress【PostgreSQL】约束链接
检查 唯一 主键 外键 排他
唯一约束
唯一约束是数据库中的一种约束#xff0c;用于确保某个列或字段的值在该列或字段中是唯一的。唯一约束可用于确保数据库表中的某个列中的值是唯一的#xff0c;也可用于确保多个列的组合值是唯一的。
在创建表…【PostgreSQL】约束链接
检查 唯一 主键 外键 排他
唯一约束
唯一约束是数据库中的一种约束用于确保某个列或字段的值在该列或字段中是唯一的。唯一约束可用于确保数据库表中的某个列中的值是唯一的也可用于确保多个列的组合值是唯一的。
在创建表时可以通过在列的定义中添加UNIQUE关键字来创建唯一约束。唯一约束可以防止在表中插入重复的值并确保每个值在该列中只出现一次。
例如创建一个名称为students的表并在该表的学号ID列上添加唯一约束可以使用以下SQL语句
CREATE TABLE students ( ID int UNIQUE, Name varchar(50), Age int, Gender char(1) );在上述示例中唯一约束被应用于ID列表示在该列中的值必须是唯一的。
当尝试向该表中插入一个已经存在的值时将会引发唯一约束冲突的错误。
PostgreSQL 唯一约束
唯一约束可确保一列或一组列中包含的数据在表中的所有行中是唯一的。语法为
CREATE TABLE products (product_no integer UNIQUE,name text,price numeric
);当编写为列约束时并且
CREATE TABLE products (product_no integer,name text,price numeric,UNIQUE (product_no)
);当编写为表约束时。
若要为一组列定义唯一约束请将其编写为表约束列名用逗号分隔
CREATE TABLE example (a integer,b integer,c integer,UNIQUE (a, c)
);这指定了指示列中的值组合在整个表中是唯一的尽管其中任何一列都不需要通常也不是唯一的。
您可以按常规方式为唯一约束指定自己的名称
CREATE TABLE products (product_no integer CONSTRAINT must_be_different UNIQUE,name text,price numeric
);添加唯一约束将自动在约束中列出的列或列组上创建唯一的 B 树索引。仅涵盖某些行的唯一性限制不能写为唯一约束但可以通过创建唯一部分索引来强制实施此类限制。
通常如果表中有多个行且约束中包含的所有列的值相等则违反唯一约束。默认情况下在此比较中两个 null 值不被视为相等。这意味着即使存在唯一约束也可以将包含 null 值的重复行存储在至少一个受约束列中。可以通过添加子句来更改此行为例如NULLS NOT DISTINCT
CREATE TABLE products (product_no integer UNIQUE NULLS NOT DISTINCT,name text,price numeric
);或
CREATE TABLE products (product_no integer,name text,price numeric,UNIQUE NULLS NOT DISTINCT (product_no)
);可以使用NULLS DISTINCT显式指定缺省行为。唯一约束中的默认 null 处理是根据 SQL 标准定义的实现其他实现具有不同的行为。因此在开发旨在实现可移植的应用程序时要小心。