云数据库 GAUSSDB-CREATE TABLE:建表示例

时间:2024-11-02 18:45:39

建表示例

  • 临时表
    --创建临时表。
    gaussdb=# CREATE GLOBAL TEMP TABLE test_t1(
        id       CHAR(7),
        name     VARCHAR(20),
        province VARCHAR(60),                       --省
        country   VARCHAR(30) DEFAULT 'China'        --国籍
    );
    
    -- 在当前会话中插入数据。
    gaussdb=# INSERT INTO test_t1 VALUES ('0000009','Jack','Guangzhou','China');
    
    --临时表里面的数据只在当前会话中可见,所以在另一个会话中查看该表中没有数据。
    gaussdb=# SELECT * FROM test_t1;
     id | name | province | country 
    ----+------+----------+---------
    (0 rows)
    --创建表临时表,并指定提交事务时删除该临时表数据。
    gaussdb=# CREATE TEMPORARY TABLE test_t2(
        id       CHAR(7),
        name     VARCHAR(20),
        province VARCHAR(60),                       --省
        country   VARCHAR(30) DEFAULT 'China'        --国籍
    ) ON COMMIT DELETE ROWS;
    --删除表。
    gaussdb=# DROP TABLE test_t1;
    gaussdb=# DROP TABLE test_t2;
  • 建表时指定字符集字符序
    --创建前置数据库。
    gaussdb=# CREATE DATABASE testdb1 DBCOMPATIBILITY = 'B' ENCODING = 'UTF8';
    gaussdb=# \c testdb1
    
    
    --创建t1表,设置t1的默认字符集为utf8mb4,默认字符序为utf8mb4_bin,设置c1字段为表的默认字符集字符序,设置c2字段的字符集为utf8mb4,字符序为utf8mb4_unicode_ci。
    testdb1=# CREATE TABLE t1(c1 text, c2 text charset utf8mb4 collate utf8mb4_unicode_ci) charset utf8mb4 collate utf8mb4_bin;
    
    --删除。
    testdb1=# DROP TABLE t1;
    testdb1=# \c postgres
    gaussdb=# DROP DATABASE testdb1;
  • IF NOT EXISTS关键字

    使用该关键字,表不存在时报NOTICE;如不用该关键字,则报ERROR。两种情况下表都不会创建成功。

    gaussdb=# CREATE TABLE test_t3(id INT);
    
    --创建一个已经存在同名的表test_t3。
    gaussdb=# CREATE TABLE test_t3(id INT);
    ERROR:  relation "test_t3" already exists in schema "public"
    DETAIL:  creating new table with existing name in the same schema
    
    --使用IF NOT EXISTS关键字。
    gaussdb=# CREATE TABLE IF NOT EXISTS test_t3(id INT);
    NOTICE:  relation "test_t3" already exists, skipping
    CREATE TABLE
    
    --删除表。
    gaussdb=# DROP TABLE test_t3;
  • 建表时指定表空间
    --创建表空间。
    gaussdb=# CREATE TABLESPACE ds_tbs1 RELATIVE LOCATION 'tablespace/tablespace_1';
    
    --创建表时,指定表空间。
    gaussdb=# CREATE TABLE test(id CHAR(7), name VARCHAR(20)) TABLESPACE ds_tbs1;
    
    --删除表和表空间。
    gaussdb=# DROP TABLE test;
    gaussdb=# DROP TABLESPACE ds_tbs1;
support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-42-0582.html