Firebird中主键的最大大小是多少?

dth*_*her 5 firebird database-design primary-key

我需要将一个Varchar(255)字段设置为Firebird 2.1中数据库表的主键.

我收到错误消息,说明字段大小太大.我使用UTF8作为我的字符集,默认页面大小为4096.

可以在Firebird中执行此操作吗?我需要确保此列是唯一的.

EMB*_*osa 8

如上所述,最大密钥大小是页面大小的1/4,但是从Firebird参考更新(此处)开始,最大可索引字符串长度(以字节为单位)比最大密钥长度小9.Firebird中的UTF8内部存储为4 Bytes/char.

因此,4096页大小的数据库中UTF8的最大长度是253个字符(4096/4 -9 = 1024 -9 = 1015,限制为253*4 = 1012).因此,如果您想要更大的字符串,则需要更大的页面大小的数据库(即使您使用的是Firebird 2.5.x).