Postgresql 使用MD5在Postgres上使用SQLAlchemy创建唯一索引

Postgresql 使用MD5在Postgres上使用SQLAlchemy创建唯一索引,postgresql,sqlalchemy,unique-constraint,unique-index,Postgresql,Sqlalchemy,Unique Constraint,Unique Index,我有一个可以包含长文本的列,我想在该列上创建一个唯一的索引 例如,我在几个地方读到过这样的文章:方法是在列的MD5上创建一个索引 我尝试添加以下代码: __table_args__ = ( sa.Index('unique_data_hash', 'MD5(data)', unique=True) ) 但当我尝试使用它时,我得到了 KeyError:“MD5data” 我如何使用SQLAlchemy添加这样的索引?在另一次搜索之后,我意识到答案是使用sa.func.md

我有一个可以包含长文本的列,我想在该列上创建一个唯一的索引

例如,我在几个地方读到过这样的文章:方法是在列的MD5上创建一个索引

我尝试添加以下代码:

__table_args__ = (
        sa.Index('unique_data_hash', 'MD5(data)', unique=True)
    )
但当我尝试使用它时,我得到了

KeyError:“MD5data”


我如何使用SQLAlchemy添加这样的索引?

在另一次搜索之后,我意识到答案是使用sa.func.md5,这非常有用

在另一次搜索之后,我意识到答案是使用sa.func.md5,这就像一个符咒

您能使用任何其他哈希函数吗?MD5没有哈希冲突的最佳跟踪记录@aviad Nissel您是否能够使用任何其他哈希函数?MD5没有哈希冲突的最佳跟踪记录@阿维德·尼塞尔