VARCHAR

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

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

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)
);
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 (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:

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.6 Community

  • Present starting in MariaDB Community Server 10.6.0.

10.5 Enterprise

  • Present starting in MariaDB Enterprise Server 10.5.3-1.

10.5 Community

  • Present starting in MariaDB Community Server 10.5.0.

10.4 Enterprise

  • Present starting in MariaDB Enterprise Server 10.4.6-1.

10.4 Community

  • Present starting in MariaDB Community Server 10.4.0.

10.3 Enterprise

  • Present starting in MariaDB Enterprise Server 10.3.16-1.

10.3 Community

  • Present starting in MariaDB Community Server 10.3.0.

10.2 Enterprise

  • Present starting in MariaDB Enterprise Server 10.2.25-1.

10.2 Community

  • Present starting in MariaDB Community Server 10.2.0.

EXTERNAL REFERENCES