【问题标题】:unique constraint on Bytea data type on PostgresqlPostgresql 上 Bytea 数据类型的唯一约束
【发布时间】:2017-10-21 11:06:42
【问题描述】:

我将图像存储在 Postgresql 的 Bytea 数据类型上,我知道不建议这样做,但我确实认为将图像组织起来的好处胜过我使用的缺点。我面临的问题是我想确保只插入唯一的图像,但是当我创建一个唯一的约束时,我收到以下错误

错误:索引行需要 28120 字节,最大大小为 8191

在将图像插入到 Postgresql 的 bytea 数据类型时如何检查唯一性?

【问题讨论】:

    标签: postgresql


    【解决方案1】:

    在摘要上创建唯一索引:

    CREATE UNIQUE INDEX idx_image_hash ON images (digest(img, 'sha1'));
    

    这假设您已安装 pgcrypto 扩展:

    CREATE EXTENSION pgcrypto;
    

    【讨论】:

    • 我可以使用它为两列创建唯一约束吗?一个用于 img 和另一个 int 列?
    • @Arya:我不确定我是否理解。对多列的唯一约束类似于 CREATE UNIQUE INDEX idx_image_hash ON images (my_int_col, digest(img, 'sha1'));
    猜你喜欢
    • 1970-01-01
    • 2013-04-20
    • 1970-01-01
    • 1970-01-01
    • 2018-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-17
    相关资源
    最近更新 更多