VARCHAR
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 with limit up to 65,535 bytes.
DETAILS
SYNONYMS
The following are synonyms for VARCHAR:
CHAR VARYING
CHARACTER VARYING
VARCHAR2
VARCHARACTER
EXAMPLES
VARCHAR
For our example of VARCHAR
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 VARCHAR
into a TEXT
, MEDIUMTEXT
, or LONGTEXT
that can happen when STRICT_TRANS_TABLES
is not set in the SQL_MODE
.
The example:
CREATE TABLE varchar_example (
description VARCHAR(20),
example VARCHAR(65511)
) DEFAULT CHARSET=latin1; -- One byte per char makes the examples clearer
INSERT INTO varchar_example VALUES
('Normal foo', 'foo'),
('Trailing spaces foo', 'foo '),
('NULLed', NULL),
('Empty', ''),
('Maximum', RPAD('', 65511, 'x'));
SELECT description, LENGTH(example) AS length
FROM varchar_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 VARCHAR
:
TRUNCATE varchar_example;
INSERT INTO varchar_example VALUES
('Overflow', RPAD('', 65512, 'x'));
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.