VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

主键

主键约束表示列或列组可用作表中行的唯一标识符。这要求值既是唯一的又不是null。因此,以下两个表定义接受相同的数据:

vastbase=# CREATE TABLE products ( product_no integer UNIQUE NOT NULL,  name text,   price numeric ); 
vastbase=# CREATE TABLE products (product_no integer PRIMARY KEY,  name text,   price numeric ); 

主键可以跨越多个列;语法类似于唯一约束:

vastbase=# CREATE TABLE example ( a integer,   b integer,   c integer,     PRIMARY KEY (a, c) ); 

添加主键将自动在主键中列出的列或列组上创建唯一的B树索引,并强制将列标记为 NOT NULL 。

一个表最多只能有一个主键。(可以有任意数量的唯一和非空约束,它们在功能上几乎是相同的,但只有一个可以被识别为主键。)关系数据库理论规定每个表必须有一个主键。Vastbase不强制执行此规则,但通常最好遵循它。

主键对于客户端应用程序很有用。例如,允许修改行值的GUI应用程序可能需要知道表的主键才能唯一地标识行。如果已经声明了主键,数据库系统还可以使用各种方式使用主键。例如,主键定义引用其表的外键的默认目标列。