修改数据库 informix 的编码 table

Modify codification on a database informix table

我需要在 informix 11.7 中编写以下代码

例如甲骨文:

ALTER DATABASE  `DATABASE_NAME` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci

希望有人能帮助我。

Informix 不支持 ALTER DATABASE 语句,并且不允许您指定将以声明方式使用的代码集。

您可以通过将环境变量 DB_LOCALE 设置为合适的值来设置创建数据库时将使用的代码集(通常您也应该设置 CLIENT_LOCALE)。例如:

DB_LOCALE=en_US.utf8 CLIENT_LOCALE=en_US.utf8 dbaccess - - <<EOF
CREATE DATABASE database_name WITH BUFFERED LOG;
EOF

我使用dbaccess只是因为它是命令行界面;可以通过任何适当的界面设置环境和创建数据库。

顺便说一句,我认为没有办法指定不区分大小写的排序规则。对于 Informix,这也是语言环境的一部分,因此必须有诸如 en_us.utf8@ci 的语言环境才能实现这一点。我不认为这样的语言环境是由 Informix 分发的。

Informix 确实支持 SET COLLATION 语句,该语句可用于更改在运行时使用的排序规则。请注意:优化器只能对在正确(当前)语言环境中构建的字符数据使用索引,因此使用 SET COLLATION 会对查询性能产生不利影响。

您可以在 IBM Information Center for Informix 中找到有关 Global Language Support 或 GLS 的更多信息。