在使用 FBManager 创建的数据库上设置默认字符集

Set default charset on a database created with FBManager

我已经使用 jaybirds 的 class FBManager 创建了一个数据库,但我找不到为它指定 default charset 的方法(默认为 NONE).

我错过了什么吗?是否可以在创建数据库后定义它?

这是用于创建它的代码段

FBManager fbm = new FBManager();
fbm.start();
fbm.createDatabase("./fb.fdb", "user", "password");
fbm.stop();

Jaybird 3.0.6 及更高版本现已提供此功能。有关详细信息,请参阅

您没有遗漏任何东西:FBManager确实没有此功能。考虑在 http://tracker.firebirdsql.org/browse/JDBC

上提交改进票

此功能现在可用 Jaybird 3.0.6 and higher. The method FBManager.setDefaultCharacterSet 已添加以设置默认字符集。

对于早期版本的 Jaybird,作为解决方法,您需要在创建数据库后更改默认字符集。

对于 Firebird 3 及更高版本,您可以使用

ALTER DATABASE SET DEFAULT CHARACTER SET UTF8

另请参阅 Firebird 3 发行说明中的​​ Alter the Default Character Set

对于 Firebird 2.5 及更早版本,您需要直接修改系统表(Firebird 3 不再支持):

UPDATE RDB$DATABASE SET RDB$CHARACTER_SET_NAME = 'UTF8'

如果 UTF8 是不同的字符集,请将其替换为您想要的默认字符集。

必须以数据库所有者或 SYSDBA 用户身份执行任一语句。

请注意,更改默认字符集仅对在设置新默认值后创建的列有影响。现有的 (var)char 列将保留其旧字符集。

免责声明:我为 Firebird 维护 Jaybird JDBC 驱动程序。