是否存在这样的事情,或者您总是需要手动设置最大字段长度?
我们的数据库中有一个varchar
字段,其中值的长度可以是从 0 一直到 800 或更大的任何值。是否有一种数据类型会自动将自身设置为输入值的长度?
(这专门用于 SQL Server - 但也应适用于大多数其他 RDBMS)
您需要定义最大长度 - 但该varchar
类型将始终只存储所需的数据。因此需要定义自动处理的最大值,而不是实际大小。
因此,如果您拥有varchar(800)
并存储 50 个字符 - 它占用 52 个字节。如果存储 100 个字符 - 使用 102 个字节(每个条目 2 个字节开销)。
同时,我仍然认为您不应该只定义所有列varchar(max)
(最大 2 GB 大小)——即使它看起来很诱人也很方便。阅读再使用 VARCHAR(n) 有什么意义?很好地解释为什么不这样做。