PostgreSQL 添加列
在本节中,我们将了解如何使用PostgreSQL ADD COLUMN命令向当前数据库表中添加一个或多个列。
PostgreSQL ADD COLUMN命令
我们将使用
alter table add列,命令将新列添加到现有表中。
语法
更改添加列命令的语法如下:
ALTER TABLE table_name
ADD COLUMN new_column_name data_type;
在以上语法中,我们具有以下参数:
参数 |
说明 |
ALTER TABLE |
这是一个子句,用于修改表的定义。 |
Table_name |
它用于描述我们需要在ALTER TABLE子句之后添加新列的表名。 |
New_cloumn _name |
用于在ADD COLUMN条件之后指定具有名称(如默认值,数据类型等)的列名称。 |
注意: 当我们向表中添加新列时,PostgreSQL会在表末尾对其进行增强,因为PostgreSQL没有其他选择来定义新列在表中的位置。
使用alter table命令添加多列
语法,通过使用alter table命令添加多列:
ALTER TABLE table_name
ADD COLUMN new_column_name_1 data_type constraint,
ADD COLUMN new_column_name_2 data_type constraint,
:::
:::
ADD COLUMN new_column_name_N data_type constraint;
PostgreSQL添加列的示例
为了更好地理解添加列,我们将遵循以下过程:
首先,我们将创建一个名为
Persons 的新表,其中有两列
Person_id和First_name ,借助以下命令:
CREATE TABLE Persons (
Person_ID Serial primary key,
Person_Name varchar not null
);
输出
执行上述查询后,我们将获得以下消息窗口,表示已创建
Persons 表:
在此之后,我们将使用以下命令的帮助将
Address列添加到
Persons表中:
ALTER TABLE Persons
ADD COLUMN Address VARCHAR;
输出
执行上述查询后,我们将获得以下消息窗口:
下面的命令将帮助我们将
City和phone_no 列添加到
Persons 表中:
ALTER TABLE Persons
ADD COLUMN City VARCHAR,
ADD COLUMN Phone_no VARCHAR;
输出
执行上述查询后,我们将获得以下消息窗口:
如果我们想在
psql 中查看
Persons 表结构,我们将使用以下内容命令:
Persons表结构的输出
如上图所示,我们在Persons表的列列表末尾添加了
Address,City和Phone_no 列。
添加具有NOT NULL约束的列
在此,我们将向包含某些数据的特定表添加具有非null约束的列。
首先,我们将使用插入命令将一些数据插入
Persons 表中:
INSERT INTO Persons (Person_name)
VALUES
('John'),
('Emily'),
('Mike');
输出
我们可以看到以下消息窗口的
Persons 表中已经插入了三行。
现在,让我们假设我们要添加
电子邮件列到
Persons表中,为此,我们使用以下命令:
ALTER TABLE Persons
ADD COLUMN Email VARCHAR NOT null;
输出
一旦执行上述命令,我们将得到一个错误,指出
列"电子邮件"包含空值

">
由于
电子邮件,发生了上述错误>列包含
NOT NULL 约束。
在 PostgreSQL 中,新列在添加列时采用
NULL 值,这也会破坏
NOT NULL 约束。
要解决上述错误,我们需要遵循以下步骤:
Step1
首先,我们需要添加没有
NOT NULL 约束的列,为此,我们将使用以下命令:
ALTER TABLE Persons
ADD COLUMN Email VARCHAR;
输出
如下面的消息窗口所示,
电子邮件列已
添加到了
Persons表:
Step2
现在,我们将更新"电子邮件"列的值。
UPDATE Persons
SET Email = 'JohnSmith11@gmail.com'
WHERE
Person_id = 1;
UPDATE Persons
SET Email = 'Emily23@gmail.com'
WHERE
Person_id = 2;
UPDATE Persons
SET Email = 'MikeRoss21@gmail.com'
WHERE
Person_id = 3;
输出
如下面的消息窗口所示,
电子邮件列值已
更新为
Persons表:

">
如果要检查
人表中的值是否已更新,我们将使用
选择命令:
输出
上述查询的输出如下:
Step3
更新Email列值后,我们将设置
NOT NULL 约束使用以下命令将
电子邮件列添加到
Persons表中:
ALTER TABLE Persons
ALTER COLUMN Email SET NOT null;
输出
执行上述命令后,我们将获得以下消息窗口: