Derby DB 向 CHAR 值添加空格

Derby DB adding white-spaces to CHAR values

我正在使用 derby 数据库构建桌面应用程序...在将数据插入 table 中时,其中包含多个数据类型为 "CHAR (10)" 的列,数据库添加了 white-spaces 的值。对于前。我正在添加一个名称 "Derby",它由 5 个字母组成,其余 5 个字母添加为 white-space。当我从数据库中检索这些值时,问题就开始了,那些 whit-spaces 也与实际值一起被检索。 "VARCHAR" 数据类型不会发生这种情况。如何避免这种情况?

这就是 CHAR 数据类型在 SQL 标准中的定义方式。 Derby 仅遵循这些规则 as documented in the manual(基本上每个 DBMS 都遵守这些规则,但在某些情况下您 可以 禁用它)

您对此无能为力 "avoid" - 如果您不想要该填充,只需使用 VARCHAR

我个人认为:CHAR 数据类型现在基本上没用了。在几乎每个 DBMS 中,VARCHAR 都更高效(因为它需要更少的存储空间)并且不会受到这种必需但烦人的填充行为的影响。