云数据库 GAUSSDB-ALTER TABLE:修改列示例

时间:2024-11-02 18:50:33

修改列示例

  • 修改列名
    --建表。
    gaussdb=# CREATE TABLE test_alt2(c1 INT,c2 INT);
    
    --修改列名。
    gaussdb=# ALTER TABLE test_alt2 RENAME c1 TO id;
    gaussdb=# ALTER TABLE test_alt2 RENAME COLUMN c2 to areaid; 
    
    --查看。
    gaussdb=# \d test_alt1
       Table "public.test_alt1"
     Column |  Type   | Modifiers 
    --------+---------+-----------
     id     | integer | 
     areaid | integer | 
  • 增加列
    --表test_alt1增加列。
    gaussdb=# ALTER TABLE IF EXISTS test_alt2 ADD COLUMN name VARCHAR(20);
    
    --查看。
    gaussdb=# \d test_alt2
               Table "public.test_alt1"
      Column  |         Type          | Modifiers 
    ----------+-----------------------+-----------
     id       | integer               | 
     areacode | integer               | 
     name     | character varying(20) |
  • 修改列的数据类型。
    --修改test_alt1表中name字段的类型。
    gaussdb=# ALTER TABLE test_alt1 MODIFY name VARCHAR(50);
    
    --查看。
    gaussdb=# \d test_alt1
              Table "public.test_alt2"
     Column |         Type          | Modifiers 
    --------+-----------------------+-----------
     id     | integer               | 
     areaid | integer               | 
     name   | character varying(50) | 
    --修改test_alt1表中name字段的类型。
    gaussdb=# ALTER TABLE test_alt2 ALTER COLUMN name TYPE VARCHAR(25);
    
    --查看。
    gaussdb=# \d test_alt2
              Table "public.test_alt2"
     Column |         Type          | Modifiers 
    --------+-----------------------+-----------
     id     | integer               | 
     areaid | integer               | 
     name   | character varying(25) | 
  • 删除列
    --删除test_alt1中areaid字段。
    gaussdb=# ALTER TABLE test_alt2 DROP COLUMN areaid;
    
    --查看。
    gaussdb=# \d test_alt2
              Table "public.test_alt2"
     Column |         Type          | Modifiers 
    --------+-----------------------+-----------
     id     | integer               | 
     name   | character varying(25) | 
  • 修改字段存储模式
    --查看表详细信息。
    gaussdb=# \d+ test_alt2
                                  Table "public.test_alt2"
     Column |         Type          | Modifiers | Storage  | Stats target | Description 
    --------+-----------------------+-----------+----------+--------------+-------------
     id     | integer               |           | plain    |              | 
     name   | character varying(25) |           | extended |              | 
    Has OIDs: no
    Options: orientation=row, compression=no, storage_type=USTORE
    
    --修改test_alt2表中name字段的存储模式。
    gaussdb=# ALTER TABLE test_alt2 ALTER COLUMN name SET STORAGE PLAIN;
    
    --查看。
    gaussdb=# \d+ test_alt2
                                 Table "public.test_alt2"
     Column |         Type          | Modifiers | Storage | Stats target | Description 
    --------+-----------------------+-----------+---------+--------------+-------------
     id     | integer               |           | plain   |              | 
     name   | character varying(25) |           | plain   |              | 
    Has OIDs: no
    Options: orientation=row, compression=no, storage_type=USTORE
    
    --删除。
    gaussdb=# DROP TABLE test_alt2;
  • 修改字段到指定位置
    --创建B模式数据库。
    gaussdb=# CREATE DATABASE test DBCOMPATIBILITY 'B';
    
    --连接至test数据库并创建表tbl_test。
    gaussdb=# \c test
    gaussdb=# CREATE TABLE tbl_test(id int, name varchar(20));
    
    --修改tbl_test表中字段name类型,并指定位置到最前面。
    gaussdb=# ALTER TABLE tbl_test MODIFY COLUMN name varchar(25) FIRST;
    
    --查看。
    gaussdb=# \d tbl_test;
              Table "public.tbl_test"
     Column |         Type          | Modifiers 
    --------+-----------------------+-----------
     name   | character varying(25) | 
     id     | integer               | 
    
    --修改tbl_test字段name的类型,并指定位置在id字段的后面。
    gaussdb=# ALTER TABLE tbl_test MODIFY COLUMN name varchar(10) AFTER id;
    
    --查看。
    gaussdb=# \d tbl_test;
              Table "public.tbl_test"
     Column |         Type          | Modifiers 
    --------+-----------------------+-----------
     id     | integer               | 
     name   | character varying(10) | 
    
    --删除表tbl_test。
    gaussdb=# DROP TABLE tbl_test;
    
    --切换至默认数据库删除数据库test(根据实际情况切换至相应的数据库)。
    gaussdb=# \c postgres
    gaussdb=# DROP DATABASE test;
support.huaweicloud.com/centralized-devg-v3-gaussdb/gaussdb-12-0487.html