我在前端应用程序中有一个非常简单的文本框(如 php,尽管语言无关紧要),并且正在插入到下面定义的数据库中表中的描述列中:
表 (ID[主键], 描述[varchar(255)])
虽然这种情况不会经常发生,但有时需要为一个元组插入超过 255 个字符。我可以增加 varchar 的长度,但元组大小有限制,因此为了安全起见,请将其保持在建议的最大 255。
我能弄清楚如何做到这一点的唯一方法是有 2 个表格并将文本分成 255 个字符的部分。表定义为:
表 1 (ID[主键]..........)
表2 (ID, 表1ID[表 1 的外键] 说明 [varchar(255)])
有没有更好的方法来实现这一目标?
编辑:Mysql 版本 5.5.11不知道有文本数据类型。可能是新的。听起来像是一种应用程序对象,但它是否足够灵活,平均存储 150 个字符,10% 的时间存储接近 5000 个字符?
如果使用MySQL版本5.0.3或更高版本,则只需增加VARCHAR
的大小即可。 根据手册:
VARCHAR
列中的值是可变长度字符串。长度可以在 MySQL 5.0.3 之前指定为 0 到 255 之间的值,在 5.0.3 及更高版本中指定为 0 到 65,535 的值。MySQL 5.0.3及更高版本中VARCHAR
的有效最大长度取决于最大行大小(65,535字节,在所有列之间共享)和使用的字符集。请参见第 E.7.4 节 "表列计数和行大小限制"。
为此,您需要执行以下操作:
ALTER TABLE tablename MODIFY description VARCHAR(...) [NOT] NULL;
或者您可以使用TEXT
类型:
ALTER TABLE tablename MODIFY description TEXT [NOT] NULL;