使用SQLAlchemy的MySQL空间索引?

1 投票
1 回答
794 浏览
提问于 2025-04-18 02:19

在sqlalchemy的文档中,有一个很好的例子,讲的是如何定义和使用Geometry列:

http://docs.sqlalchemy.org/en/rel_0_9/core/types.html#applying-sql-level-bind-result-processing

不过,文档里没有提到空间索引的相关内容。那么,我该如何在sqlalchemy中定义SPATIAL INDEX呢?

附注: 之前有一个老问题讨论过这个:有没有方便的方法用Sqlalchemy或Geoalchemy创建空间索引?,但我不想使用GeoAlchemy,因为它在两年前就被放弃了,处于“开发早期阶段”,所以我觉得这是一个不同的问题。

1 个回答

1

只需执行这个DDL命令:

 engine.execute("CREATE SPATIAL INDEX sp_index ON geom (g)")

如果你想把这个命令和某个表关联起来,可以使用DDL

from sqlalchemy import event, DDL

event.listen(some_table, 'after_create', DDL("CREATE SPATIAL INDEX sp_index ON geom (g)"))     

撰写回答