In the ANSI SQL Standard, there is no
TEXT type. There are various string types defined, like
VARCHAR and many more but no mention of a
TEXT type. There is a
CHARACTER LARGE OBJECT and a
BINARY LARGE OBJECT.
TEXT types found in various DBMS (Postgres, SQL Server, MySQL) are additions and have small differences between them. Their similarity is that they can hold very large strings.
TEXT is being deprecated. MySQL's
TEXT is not deprecated. PostgreSQL's
TEXT is well supported and recommended by many to be used everywhere, in place of
VARCHAR(n). From Postgres documentation, Character Types:
In addition, PostgreSQL provides the text type, which stores strings of any length. Although the type
text is not in the SQL standard, several other SQL database management systems have it as well.
So, the questions:
The question is, what does the ANSI SQL standard have to say about deprecating
text, and the best alternative? Also, does MySQL/MariaDB also follow this?
are simple to answer: Nothing and No. There is no deprecation of
TEXT as there is no
TEXT isn't even a reserved keyword in ANSI SQL. One DBMS (MySQL) does not have to follow another DBMS's (SQL Server) deprecation decisions for a type that isn't in the standard.