Postgresql 专题
专题目录
您的位置:database > Postgresql专题 > PostgreSQL修改表(ALTER TABLE语句)
PostgreSQL修改表(ALTER TABLE语句)
作者:--    发布时间:2019-11-20

postgresql alter table命令用于添加,删除或修改现有表中的列。您还可以使用alter table命令在现有表上添加和删除各种约束。

语法:
使用alter table语句在现有表中添加新列的基本语法如下:

alter table table_name add column_name datatype;

现有表中alter tabledrop column(删除某个字段)的基本语法如下:

alter table table_name drop column column_name;

alter table更改表中列的data type(修改字段类型)的基本语法如下:

alter table table_name alter column column_name type datatype;

alter table向表中的列添加not null约束的基本语法如下:

alter table table_name modify column_name datatype not null;

alter table添加唯一约束add unique constraint到表中的基本语法如下:

alter table table_name
add constraint myuniqueconstraint unique(column1, column2...);

alter table将“检查约束”添加到表中的基本语法如下所示:

alter table table_name
add constraint myuniqueconstraint check (condition);

alter table添加主键add primary key约束的基本语法如下:

alter table table_name
add constraint myprimarykey primary key (column1, column2...);

使用alter table从表中删除约束(drop constraint)的基本语法如下:

alter table table_name
drop constraint myuniqueconstraint;

使用alter table从表中删除主键约束(drop primary key)约束的基本语法如下:

alter table table_name
drop constraint myprimarykey;

示例:

考虑一个表 - company 有以下记录:

 id | name  | age | address   | salary
----+-------+-----+-----------+--------
  1 | paul  |  32 | california|  20000
  2 | allen |  25 | texas     |  15000
  3 | teddy |  23 | norway    |  20000
  4 | mark  |  25 | rich-mond |  65000
  5 | david |  27 | texas     |  85000
  6 | kim   |  22 | south-hall|  45000
  7 | james |  24 | houston   |  10000

以下是向现有的company表中添加新列的示例:

h3_db=# alter table company add gender char(1);

现在,company表被更改,以下使用select语句输出:

id | name  | age | address     | salary | gender
----+-------+-----+-------------+--------+--------
  1 | paul  |  32 | california  |  20000 |
  2 | allen |  25 | texas       |  15000 |
  3 | teddy |  23 | norway      |  20000 |
  4 | mark  |  25 | rich-mond   |  65000 |
  5 | david |  27 | texas       |  85000 |
  6 | kim   |  22 | south-hall  |  45000 |
  7 | james |  24 | houston     |  10000 |
(7 rows)

以下是现有表中删除 gender列的示例:

h3_db=# alter table company drop gender;

现在,company表被更改,以下将从select语句输出:

 id | name  | age | address   | salary
----+-------+-----+-----------+--------
  1 | paul  |  32 | california|  20000
  2 | allen |  25 | texas     |  15000
  3 | teddy |  23 | norway    |  20000
  4 | mark  |  25 | rich-mond |  65000
  5 | david |  27 | texas     |  85000
  6 | kim   |  22 | south-hall|  45000
  7 | james |  24 | houston   |  10000

网站声明:
本站部分内容来自网络,如您发现本站内容
侵害到您的利益,请联系本站管理员处理。
联系站长
373515719@qq.com
关于本站:
编程参考手册