返回首页

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

更新日期:2024年09月11日

GetSchemaTable 方法
返回描述GBaseDataReader 列元数据的DataTable。

语法
[Visual Basic]
Public Overrides Function GetSchemaTable As DataTable
[C#]
public override DataTable GetSchemaTable()


实现
IDataReader.GetSchemaTable()

当检索行或集合时,数据库服务器将行或集合放在 GBase 8s ODBC Driver应用程序本地的
缓冲区中。
要调用和绑定集合或行缓冲区:
1. 调用 ifx_rc_create() 分配缓冲区。
2. 调用 SQLBindCol() 绑定缓冲区以绑定数据库列。
3. 执行 SELECT 语句将行或集合传输到本地缓冲区。
4. 使用行或集合缓冲区。
5. 调用 ifx_rc_free() 释放缓冲区。

功能说明
CREATE TABLE 以用户给定的名字在当前数据库创建一个表。
用户必须有创建表
的权限。

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
946
语法格式
CREATE [TEMPORARY] TABLE [IF NOT EXISTS]
[vc_name.][database_name.]table_name
(column_definition [ , column_definition],
... [,
key_options])
[table_options]
[partition_options]
column_definition:
column_name data_type [NOT NULL | NULL] [DEFAULT default_value]
key_options:
KEY "index_name" ("column_name") KEY_BLOCK_SIZE=
KEY_DC_SIXE= USIONG HASH GLOBAL
table_options:
[COMMENT 'comment_value']
partition_options:
PARTITION BY
{ RANGE(expr)
| LIST(expr)
| LINEAR] HASH(expr)
| [LINEAR] KEY(column_list)}
[PARTITIONS num]
[SUBPARTITION BY
{ [LINEAR] HASH(expr)
| [LINEAR] KEY(column_list) }
[SUBPARTITIONS num]
]
[(partition_definition [, partition_definition] ...)]
partition_definition:
PARTITION partition_name
[VALUES
{LESS THAN {(expr | value_list) | MAXVALUE}
|
IN (value_list)}]
[(subpartition_definition [, subpartition_definition] ...)]
subpartition_definition:
SUBPARTITION logical_name
表5- 54 参数说明
参数名称


TEMPORARY
该参数为可选参数,创建临时表需要使用此关键字。

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
947
参数名称


PARTITION BY
该参数为可选参数,
创建分区表时使用此关键字。
分区表
的创建请参见“CREATE TABLE PARTITION”小节的内
容。
IF NOT EXISTS
该参数为可选参数,
用户可以使用关键字IF NOT EXISTS
创建表,如果表已经存在,系统将报告WARNING 信息。
vc_name
该参数为可选参数,
指定虚拟集群后,
在此虚拟集群下创
建数据库和表。
如果没有显示指定vc_name 参数,
创建的
数据库隶属于USE VC vc_name 后的虚拟集群。
database_name
该参数为可选参数,
指定数据库后,
在此数据库下创建表。
如果没有显示指定database_name 参数,创建的表隶属于
USE database_name 后的数据库中的表。
table_name
表命名规则请参见
“数据库、
表、
索引、
列和别名”
小节。
默认情况下,
在当前数据库中创建表。
如果没有指定当前
数据库或表已经存在,则报告错误信息。
column_name
指定表中的数据列。
data_type
指定数据列的数据类型。数据类型参见“数据类型”中的
内容。
NOT NULL | NULL
指定数据列的值,是否允许为NULL。如果既没有指定
NULL 也没有指定NOT NULL,列被视为指定了NULL。
default_value
指定数据列的默认值。
默认值必须是一个常数,
而不能是
一个函数或者一个表达式。
举例来说,
用户不能将一个数
据列的默认值设置为NOW()或者CURRENT_DATE()之
类的函数。
对于给定的一个表,
可以使用SHOW CREATE
TABLE 语句来查看哪些列有显式DEFAULT 子句。
comment_value
指定数据列的备注说明。例如:stu_no id COMMENT '学
号'。
key_options
指定表中的hash 索引。
index_name
指定要创建的索引名称
index_column_name
指定要创建的索引列名
KEY_DC_SIZE=dc_value
指定HASH 索引的分段大小。dc_value 最大值为

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
948
参数名称


2147483646,最小值为0。默认为0 表示在整列上创建
HASH 索引。
USING HASH GLOBAL
指定HASH 索引为全局索引。
table_options
默认为随机分布表。
REPLICATED
使用关键词REPLICATED 创建复制表。复制表在GBase
8a MPP Cluster 的各个data 节点上存放的是完整数据。
DISTRIBUTED
BY
column_name
指定创建表中的物理列column_name 是哈希列,这样创
建的表,称为哈希分布表。
哈希列支持:TINYINT、SMALLINT、INT、BIGINT、
DECIMAL、NUMERIC、VARCHAR、VARBINARY。
且一张表最多有10 个哈希分布列。
COMMENT
指定表的备注说明。可以用SHOW CREATE TABLE
table_name 和SHOW FULL COLUMNS FROM table_name
语句来显示备注信息。
COMPRESS
指定表级的数据压缩属性,
包含字符类型的压缩属性值和
数值类型的压缩属性值。
注意

复制表表名尾部不允许是_n{number}结尾,例如mytable_n1,mytable_n12
是不允许使用的。

执行OGG Kafka 数据同步时,需要HASH 分布列的值不能为空
示例
示例1:创建一张普通表。
gbase> CREATE TABLE t1(a int , b varchar(50) NOT NULL DEFAULT
'gbase');
Query OK, 0 rows affected
gbase> DESC t1;
+-------+-------------+------+-----+---------+-------+
| Field | Type
| Null | Key | Default | Extra |

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
949
+-------+-------------+------+-----+---------+-------+
| a
| int(11)
| YES
|
| NULL
|
|
| b
| varchar(50) | NO
|
| gbase
|
|
+-------+-------------+------+-----+---------+-------+
2 rows in set
示例2:创建带有列注释信息的表。
gbase> DROP TABLE IF EXISTS t1;
Query OK, 0 rows affected
gbase> CREATE TABLE t1 (f_username varchar(10) comment 'name' );
Query OK, 0 rows affected
gbase> DESC t1;
+------------+-------------+------+-----+---------+-------+
| Field
| Type
| Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| f_username | varchar(10) | YES
|
| NULL
|
|
+------------+-------------+------+-----+---------+-------+
1 row in set
gbase> SHOW CREATE TABLE t1;
+-------+--------------------------------------------------+
| Table | Create Table
|
+-------+--------------------------------------------------+
| t1
| CREATE TABLE "t1" (
"f_username" varchar(10) DEFAULT NULL COMMENT 'name'
)
|
+-------+--------------------------------------------------+
1 row in set