当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


PostgreSQL ALTER TABLE用法及代码示例


在 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;

输出:

相关用法


注:本文由纯净天空筛选整理自RajuKumar19大神的英文原创作品 PostgreSQL – ALTER TABLE。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。