返回首页

gbase数据、南大通用产品文档:GBase8aCREATE TABLENOCOPIES

更新日期:2024年09月11日

语法格式
CREATE TABLE [IF NOT EXISTS] table_nam
(col_name type,...)
NOCOPIES;
参数说明
NOCOPIES:在创建表时,使用关键词NOCOPIES 可以创建一张不带副本的表。
功能
nocopies 表和分布表(随机分布表和哈希分布表)一样,数据分布存储,支持表的
DDL 语法和DML 语法;与分布表的区别是,不产生副本,所以无法提供数据的高
可用性。
nocopies 表支持使用gcdump 工具导出表结构。
nocopies 表支持使用SELECT INTO OUTFILE 和rmt: SELECT INTO OUTFILE 语句
导出数据。
GBase UP 支持nocopies 表到非nocopies 表的转换。
使用约束
nocopies 表不支持使用数据加载工具进行数据加载。
nocopies 表不支持数据同步、重分布、备份与恢复。

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 616
示例
示例1:从系统库的表中查看nocopies 表信息。
gbase> USE test;
Query OK, 0 rows affected
gbase> CREATE TABLE t_1 (a int) NOCOPIES;
Query OK, 0 rows affected
gbase> CREATE TABLE t_2 (a int) NOCOPIES;
Query OK, 0 rows affected
gbase> CREATE TABLE t_3 (a int) NOCOPIES;
Query OK, 0 rows affected
gbase> SELECT * FROM gbase.table_distribution WHERE is_nocopies='YES';
+------------+--------+--------+-------------+-------------+
| index_name | dbName | tbName | isReplicate | hash_column |
+------------+--------+--------+-------------+-------------+
| test.t_1 | test | t_1 | NO | NULL |
| test.t_2 | test | t_2 | NO | NULL |
| test.t_3 | test | t_3 | NO | NULL |
+------------+--------+--------+-------------+-------------+
+------------------+--------------------+-------------+
| lmt_storage_size | table_storage_size | is_nocopies |
+------------------+--------------------+-------------+
| NULL | NULL | YES |
| NULL | NULL | YES |
| NULL | NULL | YES |
+------------------+--------------------+-------------+
3 rows in set
示例2:创建nocopies 表。
gbase> CREATE 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'
|+-------+--------------------------------------------------+
1 row in set
示例3:创建nocopies 表,使用DISTRIBUTED BY 关键字。

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 617
gbase> CREATE TABLE t1 (a int,b varchar(10)) DISTRIBUTED BY ('a') NOCOPIES;
Query OK, 0 rows affected
gbase> SHOW CREATE TABLE t1;
+-------+----------------------------------------------------------+
| Table | Create Table |
+-------+----------------------------------------------------------+
| t1 | CREATE TABLE "t1" (
"a" int(11) DEFAULT NULL,
"b" varchar(10) DEFAULT NULL
) ENGINE=EXPRESS DISTRIBUTED BY('a') NOCOPIES DEFAULT CHARSET=utf8
TABLESPACE='sys_tablespace' |
+-------+----------------------------------------------------------+
1 row in set
示例4:创建nocopies 表,使用TEMPORARY 关键字。
gbase> CREATE TABLE t1 (a int,b varchar(10)) DISTRIBUTED BY ('a') NOCOPIES;
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') NOCOPIES DEFAULT CHARSET=utf8
TABLESPACE='sys_tablespace' |
+-------+----------------------------------------------------------+
1 row in set
示例5 :复制全表表结构及数据来创建nocopies 表。(CREAET TABLE
NOCOPIES…AS SELECT…)

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 618
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> DROP TABLE IF EXISTS t8;
Query OK, 0 rows affected
gbase> CREATE TABLE t8 NOCOPIES AS SELECT * FROM t7;
Query OK, 2 rows affected
gbase> SELECT * FROM t8;
+------+------+-------+---------------------+
| a | b | c | d |
+------+------+-------+---------------------+
| 1 | 2 | 3.345 | 2011-11-11 11:11:11 |
| 3 | 5 | 5.678 | 2011-11-11 22:22:22 |
+------+------+-------+---------------------+
2 rows in set

GBase
8s 要求千位分隔符之后具有 3 位数字。
例如,
1,000 被认为是正确的,
而 1,00
则是错误的。在前发行版中,这两种格式都被认为是正确的。

GBase 8s SQL 指南:参考
南大通用数据技术股份有限公司 - 172 -


n 针对前发行版中的行为,将 n 设置为 1,即千位分隔符之后具有的数字可以少于
三位。

使用本功能,您可以在用户数据库下新建表。
在“数据库导航”中,右键单击数据库下的“表”节点,在弹出菜单中选
择“新建表”菜单项,如下图所示:

GBaseDataStudio 管理工具手册
- 286 -
南大通用数据技术股份有限公司
图5- 679 新建表
选择新建表菜单项后,系统将打开表设计器,如下图所示:
图5- 680Express 引擎表属性
输入表属性,填写表的属性信息;

表名:表的名称。

描述:表的注释。

字符集:有utf8 和GBK 两个选项,默认utf8.

GBaseDataStudio 管理工具手册
南大通用数据技术股份有限公司
- 287 -
图5- 681 列属性
输入列属性,定义表的字段,选择数据类型,定义数据类型的长度等等。
单击“确定”按钮,您会发现“数据库导航”中已经显示出您所创建的表。