在 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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。