猿问

使用 SQLAlchemy 在 Postgres 中进行不区分大小写的索引

考虑一个带有索引String字段的声明性 SQLAlchemy 模型:

class User(Base):
    name = Column(String(100), index=True, nullable=False)

name字段区分大小写,这意味着应保留原始大小写,但应支持对索引进行有效的不区分大小写的查询。

实现这一目标并在 SQLAlchemy 中实施的最佳方法是什么?

lower()如果需要,可以使用查询

session.query(User).filter_by(name=lower('SOME_name'))

但没关系,只要解决方案优雅且高效即可。

由于性能要求,使用ILIKE和 Postgres 级别的查询lower()是不可接受的,它们已经过测试并且在我的用例中在大表上的执行速度不够快。


偶然的你
浏览 168回答 1
1回答
随时随地看视频慕课网APP

相关分类

Python
我要回答