在 PostgreSQL 中,可以使用 ALTER TABLE 语句修改现有表的结构。
用法: ALTER TABLE table_name action;
PostgreSQL 支持使用 ALTER TABLE 执行的各种操作,如下所示:
- 向现有表中添加一列,如下所示:
ALTER TABLE table_name ADD COLUMN new_column_name TYPE;
- 从现有表中删除一列,如下所示:
ALTER TABLE table_name DROP COLUMN column_name;
- 重命名现有表中的列,如下所示:
ALTER TABLE table_name RENAME COLUMN column_name TO new_column_name;
- 更改现有表中列的默认值,如下所示:
ALTER TABLE table_name ALTER COLUMN column_name [SET DEFAULT value | DROP DEFAULT];
- 更改 NOT NULL 约束如下:
ALTER TABLE table_name ALTER COLUMN column_name [SET NOT NULL| DROP NOT NULL];
- 向列添加 CHECK 约束,如下所示:
ALTER TABLE table_name ADD CHECK expression;
- 添加约束如下:
ALTER TABLE table_name ADD CONSTRAINT constraint_name constraint_definition;
- 将现有表重命名如下:
ALTER TABLE table_name RENAME TO new_table_name;
现在让我们看一个例子。出于同样的目的,让我们首先创建一个表(比如链接),我们可以在我们的示例中使用以下语句对其进行更改:
CREATE TABLE links ( link_id serial PRIMARY KEY, title VARCHAR (512) NOT NULL, url VARCHAR (1024) NOT NULL UNIQUE );
例:
在这个例子中,我们将在链接表中插入一个新列,如下所示:
ALTER TABLE links ADD COLUMN active boolean;
以下语句删除了active
列从links
表:
ALTER TABLE links DROP COLUMN active;
重命名title
列到link_title
,您使用以下语句:
ALTER TABLE links RENAME COLUMN title TO link_title;
以下语句添加了一个名为的新列target
到links
表:
ALTER TABLE links ADD COLUMN target VARCHAR(10);
将 _blank 设置为默认值target
列中links
表,您使用以下语句:
ALTER TABLE links ALTER COLUMN target SET DEFAULT '_blank';
如果将新行插入links
没有为目标列指定值的表,target
column 将采用 _blank 作为默认值。为了演示,让我们插入一些数据,如下所示:
INSERT INTO links (link_title, url) VALUES('PostgreSQL Tutorial', 'https://www.geeksforgeeks.org/');
从links表查询数据:
SELECT * FROM links;
输出:
相关用法
- PostgreSQL ALTER DATABASE用法及代码示例
- PostgreSQL ALTER SCHEMA用法及代码示例
- PostgreSQL ALTER TRIGGER用法及代码示例
- PostgreSQL ALTER ROLE用法及代码示例
- PostgreSQL ALTER TABLESPACE用法及代码示例
- PostgreSQL CREATE TABLE用法及代码示例
- PostgreSQL DROP TABLE用法及代码示例
注:本文由纯净天空筛选整理自RajuKumar19大神的英文原创作品 PostgreSQL – ALTER TABLE。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。