Why/how 我可以超过 MySQL 中配置的 varchar 长度吗? [我的错,我做不到]

Why/how am I able to exceed the configured length of a varchar in MySQL? [my mistake, I can't]

[编辑:我的错误,读错了类型的列,我插入的是 LONGTEXT,而不是 varchar(190)] 我正在使用一个将大部分信息存储在 MySQL 数据库(MySQL 服务器 5.7)中的应用程序。我正在查看的一个特定值具有由 GUI 强制执行的 255 个字符的限制,但是当我查看存储它的 table 中的该列时,它被设置为 varchar(190)。我确认我可以在 GUI 中输入 255 个字符的值,并且它们没有像我预期的那样被截断。

varchar(190) 列如何存储 >190 个字符?这样做有什么后果吗?

我读了 11.4.1 The CHAR and VARCHAR Types 并且它指出任何超过限制的内容都应该被截断。

答案是我不能。误读了列类型,因为当应用程序在 PostgreSQL 中构建模式时该列是 varchar(255)。它是 MySQL 中的 longtext*,这解释了为什么我能够超过 190 个字符。我尝试将 230 个字符的测试字符串插入到 varchar(190) 列中,但它会按预期抛出错误。

需要更多咖啡。

*当应用程序 GUI 将输入限制为 255 个字符时,不确定为什么要使用 longtext,但我需要询问构建它的人。