PostgreSQL ALTER TABLE 命令


PostgreSQL ALTER 表

在本节中,我们将学习PostgreSQL ALTER TABLE用于更改结构的各种命令。

PostgreSQL ALTER TABLE 命令

我们使用PostgreSQLalter table 命令来改变当前的表结构。

语法中的ALTER TABLE给出如下:

  1. ALTER TABLE table_name 操作

下表将显示以下 ALTER TABLE 命令修改:

描述 命令
我们将使用ALTER TABLE ADD COLUMN添加新列 ALTER TABLE table_name ADD COLUMN new_column_name TYPE;
我们将使用ALTER TABLE DROP COLUMN命令删除现有列。 ALTER TABLE table_name DROP COLUMN column_name;
要修改列的默认值,我们可以使用ALTER TABLE ALTER COLUMN SET DEFAULT 或 DROP DEFAULT命令。 ALTER TABLE table_name ALTER COLUMN column_name [SET DEFAULT value \ 删除默认值];
我们将使用ALTER TABLE ADD CONSTRAINT命令来添加约束 ALTER TABLE table_name ADD CONSTRAINTconstraint_nameconstraint_definition ;
我们将使用alter table rename column命令来重命名剩余的列 ALTER TABLE table_name RENAME COLUMN column_name TO new_column_name;
对于重命名表,我们将使用ALTER TABLE RENAME TO命令。 ALTER TABLE table_name 重命名为new_table_name;
为了添加 CHECK 约束,我们将使用ALTER TABLE, ADD CHECK命令。 ALTER TABLE table_name添加检查表达式;
要更改NOT NULL 约束,我们将使用ALTER TABLE ALTER COLUMN命令。 ALTER TABLE table_name ALTER COLUMN column_name [SET NOT NULL\ 删除非空];

在 PostgreSQL 中,我们可以在alter table 命令中执行各种活动,如下所示:

  • 添加列
  • 重命名列
  • 删除一列
  • 向列添加 CHECK 约束
  • 修改列的数据类型
  • 为列设置默认值
  • 重命名表

PostgreSQL ALTER TABLE 示例

为了更好地理解ALTER TABLE命令,我们将在 Create table 命令的帮助下创建一个名为Station的新表:

CREATE TABLE Station (  
St_id INTEGER PRIMARY KEY,  
St_Name Varchar(200),  
St_City CHAR(30),  
St_State CHAR(2)  
);

输出

执行上述命令后,我们将得到以下消息窗口:

PostgreSQL ALTER 表

创建完Station表后,我们将对该特定表执行以下操作:

添加一列

之后,我们将在以下命令的帮助下添加一个名为Latitude的新列:

ALTER TABLE Station  
ADD COLUMN Latitude REAL;

输出

一旦我们执行上述命令,我们将得到以下消息窗口:

PostgreSQL ALTER 表

删除一列

要从 Station 表中删除 Latitude 列,我们将使用以下命令:

ALTER TABLE Station  
DROP COLUMN Latitude;

输出

执行上述语句后,我们将得到以下消息:

PostgreSQL ALTER 表

重命名列

要将St_Name列重命名为Name,我们使用以下命令:

ALTER TABLE Station  
RENAME COLUMN St_Name TO Name;

输出

执行上述命令后,我们将收到以下消息:

PostgreSQL ALTER 表

我们使用 SELECT 命令来检查以上所有的更改操作:

Select * from Station;

输出

运行上述命令后,我们将得到以下输出:

PostgreSQL ALTER 表

重命名表

要将 Station 表重命名为 Station1,我们将使用以下命令:

ALTER TABLE Station  
RENAME TO  Station1;

输出

执行上述命令后,我们将收到以下消息:

PostgreSQL ALTER 表

更改列类型

以下命令用于修改的类型St_City和St_State列从字符的VarcharSTATION1表:

ALTER TABLE Station1  
ALTER COLUMN St_City TYPE Varchar(30),  
ALTER COLUMN St_State TYPE Varchar(20);

输出

执行上述命令后,我们将收到以下消息:

PostgreSQL ALTER 表

添加 NOT NULL 约束

如果我们想将 NOT NULL 约束添加到Station1表的St_City列,我们将使用以下命令:

ALTER TABLE Station1 ALTER COLUMN St_City SET NOT NULL;

输出

执行上述命令后,我们将收到以下消息:

PostgreSQL ALTER 表

移除 NOT NULL 约束

如果我们想从Station1表的St_City列中删除 NOT NULL 约束,我们将运行以下命令:

ALTER TABLE Station1   
ALTER COLUMN   
St_City DROP NOT NULL;

输出

执行上述命令后,我们将收到以下消息:

PostgreSQL ALTER 表

添加 PRIMARY KEY 约束9

如果我们想在Station1表中添加主键约束,我们将使用以下命令。

ALTER TABLE  Station1  ADD PRIMARY KEY  (St_id);

输出

在下面的消息窗口中,table 只允许一个主键。因此,我们将假设表中没有预先设置的主键。

PostgreSQL ALTER 表

概括

  • 我们可以alter 命令的帮助下删除列。如果链接索引或任何表约束,则相关列将自动删除。或者,对于另一个表,如果该表被引用,我们可以使用级联。
  • 通过使用 alter table 命令,我们可以在特定表中添加约束
  • 我们还可以在 alter 命令的帮助删除列的默认值
  • 我们可以修改列的数据类型,连接的索引和约束会自动修改为新的列类型