是否存在这样的事情,或者您是否总是需要手动设置最大字段长度?
我们的数据库中有一个varchar
字段,其中值的长度可以是从0到800或更大的任何值。是否有一种数据类型会自动将其自身设置为输入值的长度?
答案 0 :(得分:4)
(这是专门针对SQL Server的 - 但也应该适用于大多数其他RDBMS )
您需要定义最大长度 - 但varchar
类型将始终只存储所需数据。因此需要定义最大值 - 而不是实际大小 - 自动处理。
因此,如果您有varchar(800)
并存储50个字符,则需要52个字节。如果存储100个字符 - 使用102个字节(每个条目2个字节的开销)。
与此同时,我仍然认为你应该 NOT 只定义所有列varchar(max)
(最大2 GB) - 尽管它看起来很诱人且方便。请阅读What's the Point of Using VARCHAR(n) Anymore?,了解为何不这样做。