我正在使用derby Database构建桌面应用程序...在将数据插入到包含多个数据类型为“CHAR(10)”的列的表中时,数据库会为该值添加空格。对于前者我正在添加一个名为“Derby”的5个字母,剩下的5个字母作为空格添加。当我从DB检索这些值时,问题就开始了,那些whit-spaces也会与实际值一起检索。 “VARCHAR”数据类型不会发生这种情况。怎么避免这个?
答案 0 :(得分:3)
这就是SQL标准中定义CHAR
数据类型的方式。 Derby遵循这些规则as documented in the manual(基本上每个DBMS都遵守这些规则,但有些可以禁用此规则)
你无法做到“避免”这一点 - 如果你不想填充,只需使用VARCHAR
。
在我个人看来:CHAR
数据类型现在基本上没用了。几乎每个DBMS VARCHAR
都更有效率(因为它需要更少的存储空间)并且不会受到这种必需但令人讨厌的填充行为的影响。