【发布时间】:2021-01-23 05:25:40
【问题描述】:
在将域定义的大小从 VarChar(6) 更改为 VarChar(10) 时,在 IB(已测试 XE7 和 IB 2017)中遇到问题。最终结果是使用域的字段最终允许比指定大小多 2 个字符(在本例中为 12 个)。
以下是重现的步骤:
- 创建一个新的 IB 数据库
- 创建 VarChar(6) 类型的域定义
- 添加具有以下新字段的新表“TestTable”: TestPK 整数,非空,主键 TestDomainField
- 测试进入新表。最多允许 6 个字符(正确)
- 将域定义更改为 VarChar(10)
- 表中的测试条目。它将允许 12 个字符而不是域上指定的 10 个字符(不正确)
元数据选择也确认了允许的 12 个字符:
SELECT distinct r.RDB$FIELD_NAME AS field_name, f.RDB$FIELD_LENGTH AS 字段长度 FROM RDB$RELATION_FIELDS 左连接 RDB$FIELDS f ON r.RDB$FIELD_SOURCE = f.RDB$FIELD_NAME WHERE r.RDB$RELATION_NAME='TestTable'
【问题讨论】:
标签: interbase