К вашему сведению, вы не можете указать размер для TINYTEXT
в MySQL:
mysql> create table t1 ( t tinytext(10) );
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds
to your MySQL server version for the right syntax to use near '(10) )' at line 1
Вы можете указать длину после TEXT
, но это не работает так, как вы думаете оно делает. Это означает, что он выберет один из семейства типов ТЕКСТ, наименьший тип, который поддерживает не менее запрошенной вами длины. Но как только он это делает, он не ограничивает длину ввода. Он по-прежнему принимает любые данные до максимальной длины выбранного типа.
mysql> create table t1 ( t text(10) );
Query OK, 0 rows affected (0.02 sec)
mysql> show create table t1\G
*************************** 1. row ***************************
Table: t1
Create Table: CREATE TABLE `t1` (
`t` tinytext
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
mysql> insert into t1 set t = repeat('a', 255);
Query OK, 1 row affected (0.01 sec)
mysql> select length(t) from t1;
+-----------+
| length(t) |
+-----------+
| 255 |
+-----------+