更新时间:2025-06-30 GMT+08:00

字符串数据类型

表1 字符串数据类型

数据类型

与MySQL的差异

CHAR(M)

具体差异请参见表格下方说明中的内容。

VARCHAR(M)

具体差异请参见表格下方说明中的内容。

TINYTEXT

具体差异请参见表格下方说明中的内容。

TEXT

具体差异请参见表格下方说明中的内容。

MEDIUMTEXT

具体差异请参见表格下方说明中的内容。

LONGTEXT

输入格式:
  • GaussDB最大支持1GB-512字节长度,MySQL最大支持4GB-1字节长度。
  • 其余差异请参见表格下方说明中的内容。
  • 对于无法转义的二进制或十六进制字符串,MySQL会输出空字符串,GaussDB输出为十六进制结果。
  • 对于TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT类型:
    • MySQL中不允许设置默认值,GaussDB中创建表列时语法上允许设置默认值。
    • 主键:MySQL中不支持主键,GaussDB支持。
    • 索引:MySQL中不支持除前缀索引外其他索引方法,GaussDB支持。
    • 外键:MySQL中不支持作为外键的参考列/被参考列,GaussDB支持。

示例:

-- GaussDB
m_db=# CREATE TABLE test_text(a text);
CREATE TABLE

m_db=# INSERT INTO test_text VALUES(0x1);
INSERT 0 1

m_db=# INSERT INTO test_text VALUES(0x111111);
INSERT 0 1

m_db=# INSERT INTO test_text VALUES(0x61);
INSERT 0 1

m_db=# SELECT * FROM test_text;
      a       
--------------
 \x01
 \x11\x11\x11
 a
(3 rows)

m_db=# DROP TABLE test_text;
DROP TABLE

-- MySQL 5.7
mysql> CREATE TABLE test_text(a text);
Query OK, 0 rows affected (0.01 sec)

mysql> INSERT INTO test_text VALUES(0x1);
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO test_text VALUES(0x111111);
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO test_text VALUES(0x61);
Query OK, 1 row affected (0.00 sec)

mysql> SELECT * FROM test_text;
+------+
| a    |
+------+
|     |
|   |
| a    |
+------+
3 rows in set (0.00 sec)

mysql> DROP TABLE test_text;
Query OK, 0 rows affected (0.01 sec)