提要:在本教程中,你将学习到如何使用 PostgreSQL 的 ALTER TABLE 语句来修改表的结构。

PostgreSQL 的 ALTER TABLE 简介

要修改一张已存在的数据表的结构,需要使用 ALTER TABLE 语句。其语法如下:

ALTER TABLE table_name action;

PostgreSQL 提供了多 个 action,允许你:

以下说明 ALTER TABLE 语句变体。

要给表添加新字段,使用 ALTER TBLE ADD COLUMN 语句:

ALTER TABLE table_name ADD COLUMN new_column_name TYPE;

要从表中删除字段,使用 ALTER TBLE ADD COLUMN 语句:

ALTER TABLE table_name DROP COLUMN column_name;

要重命名字段,使用 ALTER TABLE RENAME COLUMN TO 语句:

ALTER TABLE table_name RENAME COLUMN column_name TO new_column_name;

要改变字段的默认值,使用 ALTER TABLE ALTER COLUMN SET DEFAULTDROP DEFAULT:

ALTER TABLE table_name ALTER COLUMN [SET DEFAULT value | DROP DEFAULT]

要修改 NOT NULL 约束,使用 ALTER TABLE ALTER COLUMN 语句:

ALTER TABLE table_name ALTER COLUMN [SET NOT NULL| DROP NOT NULL]

要添加 CHECK 约束,使用 ALTER TABLE ADD CHECK 语句:

ALTER TABLE table_name ADD CHECK expression;

要添加约束,使用 ALTER TABLE ADD CONSTRAINT 语句:

ALTER TABLE table_name ADD CONSTRAINT constraint_name constraint_definition

要重命名表,使用 ALTER TABLE RENAME TO 语句:

ALTER TABLE table_name RENAME TO new_table_name;

PostgreSQL 的 ALTER TABLE 示例

创建一个名为 link 的新表来练习 ALTER TABLE 语句。

CREATE TABLE link (
 link_id serial PRIMARY KEY,
 title VARCHAR (512) NOT NULL,
 url VARCHAR (1024) NOT NULL UNIQUE
);

下面的语句用来添加一个名为 active 的字段:

ALTER TABLE link ADD COLUMN active boolean;

下面的语句用来删除 active 字段:

ALTER TABLE link DROP COLUMN active;

下面的语句用来将 title 字段重命名为 link_title

ALTER TABLE link RENAME COLUMN title TO link_title;

下面的语句用来添加 target 字段:

ALTER TABLE link ADD COLUMN target varchar(10);

下面的语句用来设置 target 字段的默认值:

ALTER TABLE link ALTER COLUMN target
SET DEFAULT '_blank';

下面的语句用来给 target 字段添加 CHECK 约束。添加该约束后,target 字段只能接受以下值中的一个:_self, _blank, _parent 和 _top

ALTER TABLE link ADD CHECK (target IN ('_self', '_blank', '_parent', '_top');

下面的语句将 link 表重命名为 url

ALTER TABLE link RENAME TO url;
上一篇:PostgreSQL 创建表
下一篇:PostgreSQL 删除表