GaussDB-二进制类型
GaussDB支持的二进制类型如表1所示。
| 名称 | 描述 | 存储空间 |
|---|---|---|
| BLOB | 二进制大对象。目前BLOB支持的外部存取接口仅为:- DBE_LOB.GET_LENGTH |
- DBE_LOB.READ
- DBE_LOB.WRITE
- DBE_LOB.WRITE_APPEND
- DBE_LOB.COPY
- DBE_LOB.ERASE这些接口详细说明请参见DBE_LOB。 | 在ustore下,最大为1GB-1,但还需要考虑到列描述头信息的大小,以及列所在元组的大小限制(也小于1GB-1),因此BLOB类型最大值可能小于1GB-1。 | | 当sql_compatibility = 'MYSQL'时,设置参数b_format_version = '5.7'和参数b_format_dev_version = 's1'时,BLOB类型映射为BYTEA类型,别名为BYTEA。 | 具体存储规格参考BYTEA类型。 | | | TINYBLOBMEDIUMBLOBLONGBLOB | 二进制大对象。 | 具体存储规格参考BYTEA类型。 | | 只有当sql_compatibility = 'MYSQL'时,设置参数b_format_version = '5.7'和参数b_format_dev_version = 's1'时,可以使用此类型,类型映射为BYTEA类型,别名为BYTEA。 | | | | RAW | 变长的十六进制类型。 | 4字节加上实际的二进制字符串。最大为1GB-1,但还需要考虑到列描述头信息的大小,以及列所在元组的大小限制(也小于1GB-1),因此类型最大值可能小于1GB-1。 | | BYTEA | 变长的二进制字符串。 | 4字节加上实际的二进制字符串。最大为1GB-1,但还需要考虑到列描述头信息的大小,以及列所在元组的大小限制(也小于1GB-1),因此类型最大值可能小于1GB-1。 | | BYTEAWITHOUTORDERWITHEQUALCOL | 变长的二进制字符串(密态特性新增的类型,如果加密列的加密类型指定为确定性加密,则该列的实际类型为BYTEAWITHOUTORDERWITHEQUALCOL),元命令打印加密表将显示原始数据类型。 | 4字节加上实际的二进制字符串。最大为1GB减去53字节(即1073741771字节)。 | | BYTEAWITHOUTORDERCOL | 变长的二进制字符串(密态特性新增的类型,如果加密列的加密类型指定为随机加密,则该列的实际类型为BYTEAWITHOUTORDERCOL),元命令打印加密表将显示原始数据类型。 | 4字节加上实际的二进制字符串。最大为1GB减去53字节(即1073741771字节)。 | | _BYTEAWITHOUTORDERWITHEQUALCOL | 变长的二进制字符串,密态特性新增的类型。 | 4字节加上实际的二进制字符串。最大为1GB减去53字节(即1073741771字节)。 | | _BYTEAWITHOUTORDERCOL | 变长的二进制字符串,密态特性新增的类型。 | 4字节加上实际的二进制字符串。最大为1GB减去53字节(即1073741771字节)。 |
- 除了每列的大小限制以外,每个元组的总大小也不可超过1GB-1字节。
- 不支持直接使用BYTEAWITHOUTORDERWITHEQUALCOL、BYTEAWITHOUTORDERCOL、_BYTEAWITHOUTORDERWITHEQUALCOL和_BYTEAWITHOUTORDERCOL类型创建表。
- RAW(n),n是指字节长度建议值,不会用于校验输入RAW类型的字节长度。
- 当sql_compatibility = 'MYSQL'时,设置参数b_format_version = '5.7'和参数b_format_dev_version = 's1'后,TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB类型的表现规格为BYTEA类型,如查询表结构显示为BYTEA类型。
示例:
| ``` --创建表。 gaussdb=# CREATE TABLE blob_type_t1 ( BT_COL1 INTEGER, BT_COL2 BLOB, BT_COL3 RAW, BT_COL4 BYTEA ) DISTRIBUTE BY REPLICATION; --插入数据。 gaussdb=# INSERT INTO blob_type_t1 VALUES(10,empty_blob(), HEXTORAW('DEADBEEF'),E'\xDEADBEEF'); --查询表中的数据。 gaussdb=# SELECT * FROM blob_type_t1; bt_col1 | bt_col2 | bt_col3 | bt_col4 ---------+---------+----------+------------ 10 | | DEADBEEF | \xdeadbeef (1 row) --删除表。 gaussdb=# DROP TABLE blob_type_t1; --示例:TINYBLOB MEDIUMBLOB LONGBLOB二进制大对象类型。 gaussdb=# CREATE DATABASE gaussdb_m WITH dbcompatibility 'MYSQL'; gaussdb=# \c gaussdb_m --设置兼容版本控制参数。 gaussdb_m=# SET b_format_version='5.7'; gaussdb_m=# SET b_format_dev_version='s1'; --创建表。 gaussdb_m=# CREATE TABLE t1(num int, a tinyblob, b blob, m mediumblob, l longblob); --插入数据。 gaussdb_m=# INSERT INTO t1 VALUES (1, 'tinyblobtest', 'blobtest', 'mediumblobtest', 'longblobtest'); --查询表中数据。 gaussdb_m=# SELECT * FROM t1; num | a | b | m | l -----+--------------+----------+----------------+-------------- 1 | tinyblobtest | blobtest | mediumblobtest | longblobtest (1 row) --删除表和数据库。 gaussdb_m=# DROP TABLE t1; gaussdb_m=# \c postgres; gaussdb=# DROP DATABASE gaussdb_m; --重置参数。 gaussdb=# RESET ALL;
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
更多详情请参考GaussDB 文档中心:<https://doc.hcs.huawei.com/db/zh-cn/gaussdbqlh/24.1.30/productdesc/qlh_03_0001.html>