📜  PostgreSQL – 更改表

📅  最后修改于: 2022-05-13 01:57:15.976000             🧑  作者: Mango

PostgreSQL – 更改表

在 PostgreSQL 中,可以使用 ALTER TABLE 语句修改现有表的结构。

Syntax: 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;

以下语句从links表中active



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 设置为links target列的默认值,请使用以下语句:

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

如果在没有为目标列指定值的情况下将新行插入到links target列将采用 _blank 作为默认值。为了演示,让我们插入一些数据,如下所示:

INSERT INTO links (link_title, url)
VALUES('PostgreSQL Tutorial', 'https://www.geeksforgeeks.org/');

从links表查询数据:

SELECT * FROM links;

输出: