我有同样的问题:
如何使用 SQL 在 Derby 中将 VARCHAR 自动截断为表字段长度?
再具体一点:
创建表 A ( B VARCHAR(2) ); 插入 AB 值('1234');会抛出一个 SQLException:
尝试将 VARCHAR '123' 缩小到长度 2 时遇到截断错误。
已经回答了:
不,你应该在检查元数据后把它砍掉。或者,如果您不想每次都检查元数据,那么您必须使代码和数据库保持同步。但这没什么大不了的,这是验证者的常见做法。
但我的疑问是:VARCHAR 不应该改变它的大小以适应数据吗?apache derby 的 VARCHAR 有什么问题?