返回首页

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

更新日期:2024年09月11日

不指定字段分隔符
示例
示例中所用的表及数据:
DROP TABLE IF EXISTS cust;
CREATE
TABLE
cust(c_id
INT,
c_name
VARCHAR(20),
c_addr
VARCHAR(100));
INSERT INTO cust VALUES (1, 'xiaoming', 'Tianjin');
INSERT INTO cust VALUES (3, 'qiaorui', 'Hebei');
INSERT INTO cust VALUES (4, 'tianfei', 'Anhui');
INSERT INTO cust VALUES (2, 'zhangling', 'Hunan');
导出SQL 语句,不指定字段分隔符,即使用默认字段分隔符“\t”:
gbase> rmt:SELECT * FROM cust INTO OUTFILE
'/home/gbase/temp/cust.txt';
Query OK, 4 rows affected
查看导出文件:
$ cat cust.txt
1
xiaoming
Tianjin
3
qiaorui Hebei
4
tianfei Anhui
2
zhangling
Hunan

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

当数据库服务器通过更新游标访存行时,它在访存的行上放置可提升锁。如果此操作成功,
则数据库服务器知道没有其他程序可改变那一行。由于可提升锁不是排他的,其他程序可
继续读取该行。
由于访存该行的程序可在它发出 UPDATE 或 DELETE 语句之前花费一些
时间,或它仅可访存下一行,因此,可提升锁可提升性能。当到了修改行时,数据库服务
器获取该行上的排他锁。如果已有可提升锁,则它将那个锁更改为排他的状态。
排他的行锁的持续时间依赖于是否在使用事务。如果未使用事务,则将修改了的行一写到
磁盘就释放该锁。当在使用事务时,保留所有这些锁,直到事务结束为止。此操作防止其
他程序使用那些可能回滚到它们的原始状态的行。
当在使用事务时,每当删除行时,就使用键锁。使用键锁防止发生下列错误:

程序 A 删除一行。

程序 B 插入有相同的键的一行。

程序 A 回滚它的事务,强制数据库服务器恢复它的删除了的行。
如何处理由程序 B 插入的行?
通过锁定索引,数据库服务器防止第二个程序插入行,直到第一个程序提交它的事务为止。

当前的隔离级别控制在数据库服务器读取不同的行时放置的锁,
如下一部分中讨论的那样。

CREATE TABLE 语句建表时指定全文索引列
语法格式
在用户创建表时,可以同时创建全文索引,
需要使用FULLTEXT 关键字进行创建。
CREATE TABLE table_name (
column defination… ,
fulltext [index] index_name (column_name)
[INDEX_DATA_PATH='path']);
表5- 34 参数说明

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


table_name
表名。
index_name
索引名(索引名表级唯一,索引名将不区分大小写)。
column_name
索引列列名,支持CHAR、VARCHAR 或TEXT 类型。
INDEX_DATA_PATH
可选项,设置索引数据路径标志。如不填写,则索引数据保存





$GBASE_BASE/userdata/gbase/dbname/metadata/tbname_n*.GED
下: *.FTD、*.fti
path
索引数据存放路径,此路径应为实际已存在的路径。
注意
执行用户需要对path 指定的存放索引数据的目录具有读写权限。
示例
示例1:不指定索引数据存放路径时,存放在默认路径中。
gbase> DROP TABLE IF EXISTS sms;
Query OK, 0 rows affected
gbase> CREATE TABLE sms (MB_No char(11),MB_Text varchar(1000)
DEFAULT NULL, FULLTEXT idx_t (MB_Text));
Query OK, 0 rows affected
示例2:为索引数据指定存放路径。步骤如下(以使用gbase 用户登录数据库为
例)。
步骤1:
gbase 用户对存放索引数据的目录有读写权限,
可以使用root 用户执行如
下命令为gbase 用户赋权:
# chown gbase:gbase /home
步骤2:在每个节点上都要创建存放索引数据的文件夹。
# su - gbase
$ mkdir -p /home/fti
步骤3:将索引数据存放在/home/fti/路径下。
gbase> CREATE TABLE text1 (col1 varchar(100), FULLTEXT INDEX
fti_col1 (col1) INDEX_DATA_PATH='/home/fti/');
Query OK, 0 rows affected

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
919
示例3:指定的索引数据路径不存在,系统报告错误信息。
gbase> CREATE TABLE text1 (col1 varchar(100), FULLTEXT INDEX
fti_col1 (col1) INDEX_DATA_PATH='/index/dat/');
ERROR 1733 (HY000): (GBA-01EX-700) Gbase general error: Empty or invalid
index path