📜  postgresql 添加带约束的列 - SQL (1)

📅  最后修改于: 2023-12-03 15:33:45.624000             🧑  作者: Mango

PostgreSQL 添加带约束的列 - SQL

在 PostgreSQL 数据库中添加带约束的列,可以通过 ALTER TABLE 语句来实现。

添加 NOT NULL 约束

在 PostgreSQL 中,可以通过添加 NOT NULL 约束来保证列不为空。

ALTER TABLE table_name
ADD COLUMN column_name data_type NOT NULL;

其中,table_name 是要添加列的表名,column_name 是要添加的列名,data_type 是数据类型。

例如,添加一个名为 age 的 int 类型的列,并设置为 NOT NULL 约束:

ALTER TABLE users
ADD COLUMN age int NOT NULL;
添加 CHECK 约束

可以通过添加 CHECK 约束来保证列中数据的有效性。

ALTER TABLE table_name
ADD COLUMN column_name data_type CHECK (condition);

其中,condition 是一个表达式,用于检查插入的数据是否满足条件。

例如,添加一个名为 gender 的 char(1) 类型的列,并设置为 CHECK 约束:

ALTER TABLE users
ADD COLUMN gender char(1) CHECK (gender IN ('M', 'F'));
添加 UNIQUE 约束

可以通过添加 UNIQUE 约束来保证列中数据的唯一性。

ALTER TABLE table_name
ADD COLUMN column_name data_type UNIQUE;

例如,添加一个名为 email 的 varchar(255) 类型的列,并设置为 UNIQUE 约束:

ALTER TABLE users
ADD COLUMN email varchar(255) UNIQUE;
添加 PRIMARY KEY 约束

可以通过添加 PRIMARY KEY 约束来设置一个列或多个列的组合作为表的主键。

ALTER TABLE table_name
ADD CONSTRAINT constraint_name PRIMARY KEY (column1, column2, ...);

例如,添加一个由 id 和 username 组成的主键:

ALTER TABLE users
ADD CONSTRAINT pk_users PRIMARY KEY (id, username);
添加 FOREIGN KEY 约束

可以通过添加 FOREIGN KEY 约束来保证列中的数据与另一张表中的数据的一致性。

ALTER TABLE table_name
ADD CONSTRAINT constraint_name FOREIGN KEY (column_name) REFERENCES other_table (other_column);

例如,添加一个由 user_id 组成的外键,并关联到 users 表的 id 列:

ALTER TABLE orders
ADD CONSTRAINT fk_orders_user_id FOREIGN KEY (user_id) REFERENCES users (id);

以上就是 PostgreSQL 中添加带约束的列的方法。注意,添加列时要注意原有数据的情况,并谨慎操作。