0

我在前端应用程序中有一个非常简单的文本框(例如 php,尽管语言无关紧要),并且正在插入到下面定义的数据库中表的描述列中:

表(ID[主键],描述[varchar(255)])

尽管这种情况不会经常发生,但有时需要为一个元组插入超过 255 个字符。我可以增加 varchar 的长度,但元组大小有限制,因此为了安全起见,请将其保持在建议的最大值 255。

我能弄清楚如何做到这一点的唯一方法是拥有 2 个表格并将文本分成 255 个字符块。表定义为:

表 1(ID[主键]........)

Table2 (ID, table1ID[表 1 的外键] 描述[varchar(255)])

有没有更好的方法来实现这一目标?

编辑:Mysql 版本 5.5.11 不知道有文本数据类型。应该是新的。听起来像是一种应用程序对象,但它是否足够灵活,可以平均存储 150 个字符并且 10% 的时间存储接近 5000 个字符?

4

1 回答 1

2

如果使用 MySQL 5.0.3 或更高版本,您只需增加VARCHAR. 根据手册

列中的值VARCHAR是可变长度的字符串。在 MySQL 5.0.3 之前,长度可以指定为 0 到 255 之间的值,在 5.0.3 和更高版本中可以指定为 0 到 65,535 之间的值。MySQL 5.0.3 及更高版本中 a 的有效最大长度VARCHAR取决于最大行大小(65,535 字节,所有列共享)和使用的字符集。请参阅第 E.7.4 节,“表列数和行大小限制”</a>。

要做到这一点,你会这样做:

ALTER TABLE tablename MODIFY description VARCHAR(...) [NOT] NULL;

或者您可以使用以下TEXT类型:

ALTER TABLE tablename MODIFY description TEXT [NOT] NULL;
于 2012-04-26T06:07:44.397 回答