VARCHAR

Overview

Variable-length string with limit up to 65,535 bytes.

See also: Data Types in 10.6 ES, in 10.5 ES, and in 10.4 ES

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

Release Series

History

10.6 Enterprise

  • Present starting in MariaDB Enterprise Server 10.6.4-1.

10.5 Enterprise

  • Present starting in MariaDB Enterprise Server 10.5.3-1.

10.4 Enterprise

  • Present starting in MariaDB Enterprise Server 10.4.6-1.

EXTERNAL REFERENCES