更新时间:2025-06-30 GMT+08:00
二进制数据类型
数据类型 |
与MySQL的差异 |
---|---|
BINARY[(M)] |
其余差异请参见表格下方说明中的内容。
说明:
GaussDB中,由于BINARY类型填充符与MySQL的差异,在操作符比较计算,字符串相关系统函数计算,索引匹配,数据导入导出等场景下与MySQL的表现会存在差异。具体差异场景请参见本章节示例。 |
VARBINARY(M) |
字符集:默认字符集为数据库初始化字符集,MySQL默认类型字符集为BINARY字符集。 其余差异请参见表格下方说明中的内容。 |
TINYBLOB |
具体差异请参见表格下方说明中的内容。 |
BLOB |
具体差异请参见表格下方说明中的内容。 |
MEDIUMBLOB |
具体差异请参见表格下方说明中的内容。 |
LONGBLOB |
取值范围:只支持最大1GB-512字节长度,MySQL最大支持4GB-1字节长度。 |
BIT[(M)] |
输出格式:
其余差异请参见表格下方说明中的内容。 |

- 对于无法转义的二进制或十六进制字符串,MySQL 5.7会输出无法显示的字符串, MySQL 8.0输出格式为0x形式的十六进制结果,GaussDB输出格式为多个\x的十六进制结果。
- 对于TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB类型:
- MySQL中不允许设置默认值,GaussDB中创建表列时语法上允许设置默认值。
- 主键:MySQL中不支持主键,GaussDB支持。
- 索引:MySQL中不支持除前缀索引外其他索引方法,GaussDB支持。
- 外键:MySQL中不支持作为外键的参考列/被参考列,GaussDB支持。
示例:
-- GaussDB m_db=# CREATE TABLE test_blob(a blob); CREATE TABLE m_db=# INSERT INTO test_blob VALUES(0x1); INSERT 0 1 m_db=# INSERT INTO test_blob VALUES(0x111111); INSERT 0 1 m_db=# INSERT INTO test_blob VALUES(0x61); INSERT 0 1 m_db=# SELECT * FROM test_blob; a -------------- \x01 \x11\x11\x11 a (3 rows) m_db=# DROP TABLE test_blob; DROP TABLE -- MySQL 5.7 mysql> CREATE TABLE test_blob(a blob); Query OK, 0 rows affected (0.02 sec) mysql> INSERT INTO test_blob VALUES(0x1); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO test_blob VALUES(0x111111); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO test_blob VALUES(0x61); Query OK, 1 row affected (0.01 sec) mysql> SELECT * FROM test_blob; +------+ | a | +------+ | | | | | a | +------+ 3 rows in set (0.00 sec) mysql> DROP TABLE test_blob; Query OK, 0 rows affected (0.00 sec) -- MySQL 8.0 mysql> CREATE TABLE test_blob(a blob); Query OK, 0 rows affected (0.08 sec) mysql> INSERT INTO test_blob VALUES(0x1); Query OK, 1 row affected (0.01 sec) mysql> INSERT INTO test_blob VALUES(0x111111); Query OK, 1 row affected (0.01 sec) mysql> INSERT INTO test_blob VALUES(0x61); Query OK, 1 row affected (0.01 sec) mysql> SELECT * FROM test_blob; +------------+ | a | +------------+ | 0x01 | | 0x111111 | | 0x61 | +------------+ 3 rows in set (0.00 sec) mysql> DROP TABLE test_blob; Query OK, 0 rows affected (0.04 sec)
父主题: 数据类型