📅  最后修改于: 2023-12-03 15:33:45.624000             🧑  作者: Mango
在 PostgreSQL 数据库中添加带约束的列,可以通过 ALTER TABLE 语句来实现。
在 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 约束来保证列中数据的有效性。
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 约束来保证列中数据的唯一性。
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 约束来设置一个列或多个列的组合作为表的主键。
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 约束来保证列中的数据与另一张表中的数据的一致性。
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 中添加带约束的列的方法。注意,添加列时要注意原有数据的情况,并谨慎操作。