返回首页

gbase数据、南大通用产品文档:GBase8a打开表

更新日期:2024年09月11日

会默认查询当前表的前200 行数据,新建右侧标签页展示,如下图:

统一数据平台监控与运维系统用户手册
- 144 -
南大通用数据技术股份有限公司

首先在postgresql.conf 中设置配置选项:
wal_level = logical
对于一个基础设置来说,其他所需的设置使用默认值就足够了。
需要调整pg_hba.conf 以允许复制(这里的值取决于实际的网络配置以及用于连接的用
户):
host
all
repuser

功能
在创建一个表时,用户可以使用关键词TEMPORARY。临时表被限制在当前连接
中,当连接关闭时,临时表会自动地删除。这就意味着,两个不同的连接可以使用
同一个临时表名而不会发生冲突,也不会与同名现有的表冲突(现有表将被隐藏,
直到临时表被删除)。使用此种方法,一旦客户端与GBase UP 断开连接,临时表
将自动删除。
注意

临时表支持除ALTER 之外的所有DDL 及DML 操作。

临时表不能被备份。

临时表不支持使用gcdump 工具导出表结构。

临时表支持在当前连接中使用查询结果导出语句导出表中数据。

在进行集群数据重分布、备份恢复前需要清除当前连接中的临时表。
示例
示例1:创建临时表。

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 612
gbase> USE test;
Query OK, 0 rows affected
gbase> CREATE TEMPORARY TABLE tem_table (a int);
Query OK, 0 rows affected
gbase> INSERT INTO tem_table VALUES(1),(2),(7),(9);
Query OK, 4 rows affected
Records: 4 Duplicates: 0 Warnings: 0
gbase> SELECT * FROM tem_table;
+------+
| a |
+------+
| 1 |
| 2 |
| 7 |
| 9 |
+------+
4 rows in set
gbase> EXIT
Bye
$ gccli -uroot --nice_time_format -p
Enter password

GBase UP client [DEMO] 8.6.2.18-R4 build 86926. Copyright (c) 2004-2017, GBase. All
Rights Reserved.
gbase> USE test;
Query OK, 0 rows affected
gbase> SELECT * FROM tem_table;
ERROR 1146 (42S02): Table 'test.tem_table' doesn't exist
示例2:创建的临时表与复制表同名。
gbase> CREATE TABLE t1 (a int,b varchar(10)) REPLICATED;
Query OK, 0 rows affected
gbase> CREATE TEMPORARY TABLE t1 (a int,b varchar(10));
Query OK, 0 rows affected
示例3:创建临时表,使用NOCOPIES 关键字。

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 613
gbase> CREATE TEMPORARY TABLE t1 (a int) NOCOPIES;
Query OK, 0 rows affected
gbase> SHOW CREATE TABLE t1;
+-------+-----------------------------------------------------------------+
| Table | Create Table |
+-------+-----------------------------------------------------------------+
| t1 | CREATE TEMPORARY TABLE "t1" (
"a" int(11) DEFAULT NULL
) ENGINE=EXPRESS NOCOPIES DEFAULT CHARSET=utf8 TABLESPACE='sys_tablespace' |
+-------+-----------------------------------------------------------------+
gbase> INSERT INTO t1 VALUES(1),(2),(7),(9);
Query OK, 4 rows affected
Records: 4 Duplicates: 0 Warnings: 0
gbase> EXIT
Bye
$ gccli -uroot --nice_time_format -p
Enter password

GBase UP client [DEMO] 8.6.2.18-R4 build 86926. Copyright (c) 2004-2017, GBase. All Rights
Reserved.
gbase> USE test;
Query OK, 0 rows affected
gbase> SELECT * FROM t1;
ERROR 1146 (42S02): Table 'test.t1' doesn't exist
示例4:创建临时表,使用DISTRIBUTED BY 关键字。
gbase> CREATE TEMPORARY TABLE t1 (a int,b varchar(10)) DISTRIBUTED BY ('a');
Query OK, 0 rows affected
gbase> SHOW CREATE TABLE t1;
+-------+--------------------------------------------------+
| Table | Create Table |
+-------+--------------------------------------------------+
| t1 | CREATE TEMPORARY TABLE "t1" (
"a" int(11) DEFAULT NULL,
"b" varchar(10) DEFAULT NULL
)ENGINE=EXPRESS DISTRIBUTED BY('a') DEFAULT CHARSET=utf8 TABLESPACE='sys_tablespace'
|+-------+--------------------------------------------------+
示例5:创建临时表,使用REPLICATED 关键字。

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 614
gbase> CREATE TEMPORARY TABLE t1 (a int,b varchar(10)) REPLICATED;
Query OK, 0 rows affected
gbase> SHOW CREATE TABLE t1;
+-------+--------------------------------------------------+
| Table | Create Table |
+-------+--------------------------------------------------+
| t1 | CREATE TEMPORARY TABLE "t1" (
"a" int(11) DEFAULT NULL,
"b" varchar(10) DEFAULT NULL
)ENGINE=EXPRESS REPLICATED DEFAULT CHARSET=utf8 TABLESPACE='sys_tablespace'
|+-------+--------------------------------------------------+
1 row in set
示例6:
复制全表表结构及数据来创建临时表
(CREATE TEMPORARY TABLE...AS
SELECT...)
gbase> CREATE TABLE t7(a INT, b DECIMAL, c FLOAT, d DATETIME);
Query OK, 0 rows affected
gbase> INSERT INTO t7 VALUES(1,2,3.345,'2011-11-11 11:11:11'),(3,5,5.678,'2011-11-11
22:22:22');
Query OK, 2 rows affected
Records: 2 Duplicates: 0 Warnings: 0
gbase> CREATE TEMPORARY TABLE t8 AS SELECT * FROM t7;
Query OK, 2 rows affected
gbase> EXIT
Bye
$ gccli -uroot --nice_time_format -p
Enter password

GBase UP client [DEMO] 8.6.2.18-R4 build 86926. Copyright (c) 2004-2017, GBase. All Rights
Reserved.
gbase> USE test;
Query OK, 0 rows affected
gbase> SELECT * FROM t8;
ERROR 1146 (42S02): Table 'test.t8' doesn't exist
示例7:
复制t7的表结构来创建临时表t8。
(CREATE TEMPORARY TABLE...LIKE...)


GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 615
gbase> CREATE TEMPORARY TABLE t8 LIKE t7;
Query OK, 0 rows affected
gbase> SELECT * FROM t8;
Empty set
gbase> SHOW CREATE TABLE t8;
+-------+---------------------------------------------------------+
| Table | Create Table |
+-------+---------------------------------------------------------+
| t8 | CREATE TEMPORARY TABLE "t8" (
"a" int(11) DEFAULT NULL,
"b" decimal(10,0) DEFAULT NULL,
"c" float DEFAULT NULL,
"d" datetime DEFAULT NULL
) ENGINE=EXPRESS DEFAULT CHARSET=utf8 TABLESPACE='sys_tablespace' |
+-------+---------------------------------------------------------+
1 row in set