更新时间:2025-09-11 GMT+08:00
分享

二进制类型

M-Compatibility支持的二进制类型如表1所示。

表1 二进制类型

名称

描述

存储空间

BINARY[(n)]

二进制定长字符串,不足补空格。n是指字节长度,如不带精度n,默认精度为1。

最大为255个字节

VARBINARY(n)

二进制变长字符串。n是指字节长度。

最大为65532个字节

BLOB[(n)]

二进制大对象。n是指该类型的可选字节长度,指定n后将列创建为最小的但足以容纳n字节的BLOB类型。

最大为65535个字节

TINYBLOB

二进制大对象。

最大为255个字节

MEDIUMBLOB

二进制大对象。

最大为16777215个字节

LONGBLOB

二进制大对象。

最大为1GB-1个字节

  • sql_mode参数值包含“strict_trans_tables”时,非法输入或者输入超过范围时,会报error。
  • sql_mode参数值不包含“strict_trans_tables”时,非法输入或者输入超过范围时,会返回截断后的值。
  • 不支持‘||’连接符连接数据。

示例

显示用字符串输出二进制类型。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
--创建表。
m_db=# CREATE TABLE blob_type_t1  
(
    BT_COL1 BINARY(10),
    BT_COL2 VARBINARY(10),
    BT_COL3 BLOB,
    BT_COL4 BLOB(10)
) DISTRIBUTE BY REPLICATION;

--插入数据。
m_db=# INSERT INTO blob_type_t1 VALUES ('blob_test1', 'blob_test2','blob_test3','blob_test4');

--查询表中的数据。
m_db=# SELECT *  FROM blob_type_t1;
  bt_col1   |  bt_col2   |  bt_col3   |  bt_col4
------------+------------+------------+------------
 blob_test1 | blob_test2 | blob_test3 | blob_test4
(1 row)

--删除表。
m_db=# DROP TABLE blob_type_t1;

--示例:BINARY类型
--创建表。
m_db=# CREATE TABLE blob_type_t2  
(
    BT_COL1 BINARY(5)
) DISTRIBUTE BY REPLICATION;

--严格模式下插入的数据长度超过类型规定的长度报错。
m_db=# SET SQL_MODE = 'strict_trans_tables,only_full_group_by,no_zero_in_date,no_zero_date,error_for_division_by_zero,
no_auto_create_user,no_engine_substitution';
SET
m_db=# INSERT INTO blob_type_t2 VALUES ('too long');
ERROR:  value too long for type binary(5)
CONTEXT:  referenced column: bt_col1

--宽松模式下插入的数据长度超过类型规定的长度,数据截断插入。
m_db=# SET SQL_MODE = '';
SET
m_db=# INSERT INTO blob_type_t2 VALUES ('too long');
INSERT 0 1

--查询表中的数据。
m_db=# SELECT * FROM blob_type_t2;
 bt_col1
---------
 too l
(1 row)

--删除表。
m_db=# DROP TABLE blob_type_t2;

相关文档