Eva*_*oll 5 postgresql collation postgresql-9.1 citext
就在最近,我从 Postgresql 8.4.11 升级到 9.1.3。我在这个过程中使用了 pg_dump。现在我收到一个错误:
错误:没有为可排序类型 citext 的列“vin”派生排序规则
提示:使用 COLLATE 子句显式设置排序规则。
这是我之前遇到的问题的延续。发行说明中建议的修复似乎没有捕获自定义域。似乎8.4 中的CREATE DOMAIN语句甚至不支持该COLLATE
子句。
这就是我创建vin
类型的方式,
CREATE DOMAIN inventory.valid_vin AS citext
CHECK ( inventory.valid_vin( VALUE ) );
Run Code Online (Sandbox Code Playgroud)
有关这方面的更多信息,请参阅我们在此线程上的通信:
问题就出自汤姆·莱恩之口,
好吧,如果这就是您创建 citext * 的方式,那么它就坏了。从 9.1 开始,需要使用属性“COLLATABLE = true”创建 citext 类型。建议的 UPDATE 语句是一种纠正事后失败的方法,但它们不涵盖已在 citext 之上创建的任何域。
资料来源:http ://archives.postgresql.org/pgsql-general/2012-05/msg00262.php
*
我正在创建 citext,但是我的特定转储已创建它,没有什么特别的。
因此,如果您拥有 citext 上的域,则不支持从 8.3 -> 9.1 进行转储/恢复。
您可以首先执行以下操作来解决此问题:
CREATE EXTENSION citext
在加载转储之前。DOMAINS
citext 上运行。 归档时间: |
|
查看次数: |
1046 次 |
最近记录: |