返回首页

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

更新日期:2024年09月11日

TABLE_CONSTRAINTS
存储主键约束、外键约束、唯一约束、check 约束。
表 5-47 具体信息如下:
CONSTRAINT_CATALOG
约束登记目录
CONSTRAINT_SCHEMA
约束所属的数据库名
CONSTRAINT_NAME
约束的名称
TABLE_SCHEMA
约束依赖表所属的数据库名(一般与constraint_schema 相同)
TABLE_NAME
约束所属的表名
CONSTRAINT_TYPE
约束类型[primary key|foreign key|unique|check]

功能说明
Merge 时,update 部分不能指定更新自增列,insert 部分不能指定自增列。
示例
CREATE
TABLE
t1(a
INT
AUTO_INCREMENT
PRIMARY
KEY,b
VARCHAR(100), c INT) DISTRIBUTED BY ('b');
CREATE
TABLE
t2(a
INT
AUTO_INCREMENT
PRIMARY
KEY,b
VARCHAR(100), c INT) DISTRIBUTED BY ('b');
INSERT INTO t1(b,c) VALUES('a',1),('b',2);
INSERT INTO t2(b,c) VALUES('a',7),('b',8),('c',3),('d',4);
gbase> SELECT * FROM t1;
+---+------+------+
| a | b
| c
|
+---+------+------+
| 2 | b
|
2 |
| 3 | a
|
1 |
+---+------+------+
2 rows in set (Elapsed: 00:00:00.01)
gbase> SELECT * FROM t2;

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
1029
+---+------+------+
| a | b
| c
|
+---+------+------+
| 4 | c
|
3 |
| 2 | b
|
8 |
| 6 | d
|
4 |
| 3 | a
|
7 |
+---+------+------+
4 rows in set (Elapsed: 00:00:00.01)
gbase> MERGE INTO t1 USING t2 ON t1.b = t2.b WHEN MATCHED
THEN
UPDATE
SET
t1.a
=
t2.c
WHEN
NOT
MATCHED
THEN
INSERT(t1.b,t1.c) VALUES(t2.b,t2.c);
ERROR 1235 (42000): This version of GBase doesn't yet support 'update/merge on
auto_increment column'
gbase> MERGE INTO t1 USING t2 ON t1.b = t2.b WHEN MATCHED
THEN
UPDATE
SET
t1.c
=
t2.c
WHEN
NOT
MATCHED
THEN
INSERT(t1.a,t1.c) VALUES(t2.a,t2.c);
ERROR 1235 (42000): This version of GBase doesn't yet support 'update/merge on
auto_increment column'
gbase> MERGE INTO t1 USING t2 ON t1.b = t2.b WHEN MATCHED
THEN
UPDATE
SET
t1.c
=
t2.c
WHEN
NOT
MATCHED
THEN
INSERT(t1.b,t1.c) VALUES(t2.b,t2.c);
Query OK, 4 rows affected (Elapsed: 00:00:00.05)
Rows matched: 4
Changed: 4
Warnings: 0
gbase> SELECT * FROM t1;
+---+------+------+
| a | b
| c
|

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
1030
+---+------+------+
| 3 | a
|
7 |
| 7 | c
|
3 |
| 2 | b
|
8 |
| 5 | d
|
4 |
+---+------+------+
4 rows in set (Elapsed: 00:00:00.01)

您可以将 SET ENCRYPTION PASSWORD 语句与内置 SQL 加密函数(使用 Advanced
Encryption Standard (AES)
和 Triple DES (3DES)
加密)
一起使用来保护您的敏感数据。
如果使用加密,只有拥有正确密码的用户才能读取、复制或修改数据。
将SET ENCRYPTION PASSWORD 语句与下列内置加密和解密函数一起使用 :

ENCRYPT_AES
ENCRYPT_AES(data-string-expression
[, password-string-expression [, hint-string-expression ]])


ENCRYPT_TDES

GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司 - 111 -

ENCRYPT_TDES (data-string-expression
[, password-string-expression [, hint-string-expression ]])


DECRYPT_CHAR
DECRYPT_CHAR(EncryptedData [, PasswordOrPhrase])

DECRYPT_BINARY
DECRYPT_BINARY(EncryptedData [, PasswordOrPhrase])

GETHINT
GETHINT(EncryptedData)
如果您使用了 SET ENCRYPTION PASSWORD 语句来指定缺省密码,那么数据库服务器
将该密码应用于同一会话中调用的对加密和解密函数的后续调用中。
使用 ENCRYPT_AES 和 ENCRYPT_TDES 定义加密的数据,使
用 DECRYPT_CHAR 和 DECRYPT_BINARY 查询加密的数据。
使用 GETHINT 显示密码提
示符(如果在服务器上设置了该字符串)。
可以使用这些 SQL 内置函数来实现列级别或单元级别加密。
使用列级别加密,用相同的密码为给定列上的所有值加密。
使用单元级别加密,用不同的密码为列内的数据加密。
提示: 如果想从大型表中选择加密数据,请指定未加密的列。在其中选择行,可对包含加密数
据的列创建索引或外键约束,但是这样做对资源使用的效率较低,原因是查询优化器不使用此
类索引和外键约束。