当前位置: 首页 > news >正文

【PostgreSQL】约束-唯一约束

【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 标准定义的实现,其他实现具有不同的行为。因此,在开发旨在实现可移植的应用程序时要小心。

http://www.lryc.cn/news/274095.html

相关文章:

  • 学习使用js/jquery获取指定class名称的三种方式
  • latex数学公式
  • frp配置内网穿透访问家里的nas
  • C语言-蓝桥杯2023年第十四届省赛真题-砍树
  • python识别验证码+灰度图片base64转换图片
  • TF-IDF(Term Frequency-Inverse Document Frequency)算法 简介
  • 企业怎么打造私域转化闭环?
  • 基于等保合规和滑动标尺模型的云安全建设方法
  • MySQL数据库期末知识点总结(复习版)
  • 流行的Jmeter+Ant+Jenkins接口自动化测试框架在网络上走红
  • MySQL 数据页损坏处理思路
  • 面试 Vue 框架八股文十问十答第二期
  • 【Python学习】2024PyCharm插件推荐
  • 剑指offer题解合集——Week2day6
  • 算法训练第五十二天|300. 最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组
  • HTTP基础知识总结
  • 创意与技术的结晶:AI魔法绘图与中文描述的完美结合
  • Python:int(value, base=10)
  • Vue之调用store的action(包含getter调用)
  • 蟹目标检测数据集VOC格式400张
  • PyTorch中常用的工具(4)Visdom
  • Linux(ubuntu)下git / github/gitee使用
  • 回归预测 | MATLAB实OOA-LSTM基于鱼鹰优化算法优化长短期记忆网络的多输入单输出数据回归预测模型 (多指标,多图)
  • 2023年工作初体验
  • PostgreSQL 作为向量数据库:入门和扩展
  • 亚信安慧AntDB数据库:企业核心业务系统数据库升级改造的可靠之选
  • CommonJS 和 ES6 Module:一场模块规范的对决(上)
  • python快速实现简易电子音乐盒(电子钢琴)
  • 详解bookkeeper AutoRecovery机制
  • 使用 Ubuntu 20.04 进行初始服务器设置