阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      PostgreSQL alter table

      PostgreSQL ALTER TABLE 命令

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

      实例

      创建 COMPANY 表,数据内容如下:

      axihedb# 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)
      

      下面实例在这张表中添加新的列:

      axihedb=# 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 列:

      axihedb=# ALTER TABLE COMPANY DROP GENDER;
      

      得到结果如下:

      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
      
      目录
      目录