VARBINARY
This page is part of MariaDB's Documentation.
The parent of this page is: Data Types for MariaDB Enterprise Server
Topics on this page:
Overview
Variable-length string for binary data with limit up to 65,535 bytes.
DETAILS
SYNONYMS
The following are synonyms for VARBINARY:
RAW
EXAMPLES
VARBINARY
For our example of VARBINARY
we picked a maximum size that avoids overflowing the maximum row size (65535). Keep in mind that a multi-byte character set would need more space in the row than a single-byte character set. We also avoid the auto-conversion of a VARBINARY
into a BLOB
, MEDIUMBLOB
, or LONGBLOB
that can happen when STRICT_TRANS_TABLES
is not set in the SQL_MODE
.
The example:
CREATE TABLE varbinary_example (
description VARCHAR(20),
example VARBINARY(65511)
) DEFAULT CHARSET=latin1; -- One byte per char makes the examples clearer
INSERT INTO varbinary_example VALUES
('Normal foo', 'foo'),
('Trailing spaces foo', 'foo '),
('NULLed', NULL),
('Empty', ''),
('Maximum', RPAD('', 65511, CHAR(7)));
SELECT description, LENGTH(example) AS length
FROM varbinary_example;
+---------------------+--------+
| description | length |
+---------------------+--------+
| Normal foo | 3 |
| Trailing spaces foo | 9 |
| NULLed | NULL |
| Empty | 0 |
| Maximum | 65511 |
+---------------------+--------+
Data Too Long
When SQL_MODE
is strict (the default) a value is considered "too long" when its length exceeds the size of the data type, and an error is generated.
Example of data too long behavior for VARBINARY
:
TRUNCATE varbinary_example;
INSERT INTO varbinary_example VALUES
('Overflow', RPAD('', 65512, CHAR(7)));
ERROR 1406 (22001): Data too long for column 'example' at row 1
CHANGE HISTORY
EXTERNAL REFERENCES
Additional information on this topic may be found in the MariaDB Public Knowledge Base.