在 PostgreSQL 中,主键是用来唯一标识表中的每一行数据的字段,主键的值必须是唯一的,且不能为 NULL,主键可以由一个或多个字段组成,但至少要有一个字段作为主键,本文将介绍如何在 PostgreSQL 中对主键进行操作,包括创建主键、修改主键、删除主键以及查看主键等操作。
创建主键
1、使用 PRIMARY KEY 约束创建主键
在创建表时,可以直接为主键字段添加 PRIMARY KEY 约束,创建一个名为 users 的表,id 字段为主键:
CREATE TABLE users ( id SERIAL PRIMARY KEY, name VARCHAR(255) NOT NULL, age INT );
在这个例子中,我们使用 SERIAL 数据类型来自动生成主键 id 的值,当插入新记录时,id 字段已经有值,PostgreSQL 将不会插入新记录;id 字段没有值,PostgreSQL 将自动为其分配一个新的序列值。
2、在已有表中添加主键约束
如果需要在已有的表中添加主键约束,可以使用以下语法:
ALTER TABLE table_name ADD PRIMARY KEY (column1, column2, ...);
为 users 表的 name 和 age 字段添加主键约束:
ALTER TABLE users ADD PRIMARY KEY (name, age);
修改主键
1、从现有主键中移除非 NULL 值
如果需要从现有主键中移除非 NULL 值,可以使用以下语法:
ALTER TABLE table_name DROP CONSTRAINT constraint_name;
从 users 表中移除非 NULL 值的主键约束:
ALTER TABLE users DROP CONSTRAINT primary_key;
可以使用以下语法重新设置主键:
ALTER TABLE table_name ADD PRIMARY KEY (column1, column2, ...);
为 users 表的 name 和 age 字段重新设置主键约束:
ALTER TABLE users ADD PRIMARY KEY (name, age);
2、为现有主键添加或移除列名
如果需要为现有主键添加或移除列名,可以使用以下语法:
ALTER TABLE table_name DROP COLUMN column_name, ADD COLUMN new_column_name data_type;
为 users 表的 id 字段添加一个名为 user_id 的新列:
ALTER TABLE users DROP COLUMN id, ADD COLUMN user_id BIGINT;
删除主键约束和主键字段本身(不推荐)
1、删除主键约束(不推荐)
由于主键约束通常用于确保数据的完整性和一致性,因此不推荐直接删除主键约束,如果你确实需要删除主键约束,可以使用以下语法:
ALTER TABLE table_name DROP CONSTRAINT constraint_name;
从 users 表中删除主键约束:
ALTER TABLE users DROP CONSTRAINT primary_key;
2、直接删除主键字段(不推荐)
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/196313.html