【问题标题】:PostgreSQL using XID as unique entry in a tablePostgreSQL 使用 XID 作为表中的唯一条目
【发布时间】:2012-04-02 14:28:53
【问题描述】:

我找不到如何将 xid(事务 ID 类型)列设置为在表中唯一。它抱怨 btree 缺少类方法,我不知道如何解决它。

这是使用 PostgreSQL 9.0。

在这些论坛或互联网上找不到任何类似的问题。 :-(

【问题讨论】:

  • 我很好奇为什么要这样做,如果您尝试在每个事务的表中插入/更新多于一行,它基本上会出错。什么时候才有这个有用的属性?

标签: postgresql unique database-schema postgresql-9.0


【解决方案1】:

原因是没有为数据类型xid(以及其他)定义<> 运算符。试试:

SELECT '123'::xid <> '123'::xid

失败。
您可以通过添加这样的唯一索引来规避此限制:

CREATE UNIQUE INDEX tbl_xid_col_uni_idx
ON tbl (cast(cast(xid_col AS text) AS int));

【讨论】:

    猜你喜欢
    • 2011-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-20
    • 1970-01-01
    • 2016-07-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多