MySQL Workbench TEXT() 列参数

9
我通常不使用MySQL Workbench,我正在尝试通过选择TEXT()来创建一个包含文本列的表,但是我不确定在括号中应该放什么值。如果我将其留空,它会给出以下错误信息:
给定的数据类型TEXT()存在错误,无法接受。之前的值将被保留。
我可以在括号内放置一个数字,但我想知道它如何影响列。
我在网上找不到任何答案。我知道它会影响DATETIME()等内容,但不知道对这种数据类型有何影响。
1个回答

11
在 TEXT(M) 中,M 是一个可选长度。从文档中可以了解到:

可以为此类型提供可选的长度 M。如果这样做, MySQL将创建最小的TEXT类型的列,足以容纳M个字符的值。

因此,您可以使用它来指定字段预计的最大字符数。
如果省略括号 - 只有TEXT - 它将默认为65,535。否则,如果您提供括号和值,则默认为适当的文本类型(TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT)。
请参见此处与VARCHAR进行比较。一个区别是您无法直接对TEXT字段进行索引,需要一个前缀。

谢谢,我想我对数据类型的理解有误。我以为如果我们将其留空,它会默认为某个值。 - user126865
我在我的回答中添加了一些更多的信息。 - Andy G
1
是的,你可以为文本字段建立索引,只需使用前缀即可。 - Shadow
谢谢您的澄清。我已经调整了我的答案。 - Andy G

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接