扫码一下
查看教程更方便
在 postgresql 中,alter table 命令用于添加,修改,删除一张已经存在表的列。
另外你也可以用 alter table 命令添加和删除约束。
用 alter table 在一张已存在的表上添加列的语法如下:
alter table table_name add column_name datatype;
在一张已存在的表上 drop column(删除列),语法如下:
alter table table_name drop column column_name;
修改表中某列的 data type(数据类型),语法如下:
alter table table_name alter column column_name type datatype;
给表中某列添加 not null 约束,语法如下:
alter table table_name alter column_name datatype not null;
给表中某列 add unique constraint( 添加 unique 约束),语法如下:
alter table table_name
add constraint myuniqueconstraint unique(column1, column2...);
给表中 add check constraint(添加 check 约束),语法如下:
alter table table_name
add constraint myuniqueconstraint check (condition);
给表 add primary key(添加主键),语法如下:
alter table table_name
add constraint myprimarykey primary key (column1, column2...);
drop constraint (删除约束),语法如下:
alter table table_name
drop constraint myuniqueconstraint;
如果是 mysql ,代码是这样:
alter table table_name
drop index myuniqueconstraint;
drop primary key (删除主键),语法如下:
alter table table_name
drop constraint myprimarykey;
如果是 mysql ,代码是这样:
alter table table_name
drop primary key;
创建 ,数据内容如下:
jiyik_db=# select * from 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
(7 rows)
下面实例在这张表中添加新的列:
jiyik_db=# alter table company add gender char(1);
现在表长这样:
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 列:
jiyik_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