情况是我在 postgresql 表中有一个 JSON 列类型。我想在 json 中的一个或多个键上创建一个索引。我相信我知道如何使用 sql 来做到这一点(旁注:我的印象是您必须使用 jsonb 才能根据 postgresql docs 进行这种索引。情况似乎并非如此。)
为了保持一致性,我想通过 sqlalchemy 来执行此操作,但我没有在他们的文档中看到任何关于如何执行此操作的提及。这可能吗?
最佳答案
我已经找到了这个问题的答案。正如 Craig 指出的那样,这是一个基于表达式的索引,它在 Postgresql 9.3 中的 JSON 列类型上成为可能。 .这可以通过 SQLAlchemy 按以下方式完成:
给定一个名为 MyModel
的模型和一个名为 data
的 JSON 列类型,采用以下形式:
{"my_key": "my_value"}
要在 my_key
上创建基于表达式的索引,您可以这样做:
index = Index("my_index_name", MyModel.c.data['my_key'].astext)
index.create(engine)
这个问题的原始答案来自 SQLAlchemy google 组中的 Mike Bayer,您可以在该组中找到 here .
关于python - 使用 sqlalchemy 在 json 键上创建索引(表达式索引),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24496516/