SQLAlchemy:具有ForeignKey的Column是否自动创建索引?

时间:2012-01-17 06:54:42

标签: sqlalchemy

带有ForeignKey的列是否自动创建索引? 或者我需要手动添加index=True

some_field = Column(Integer, ForeignKey(SomeModel.id))

谢谢!

2 个答案:

答案 0 :(得分:12)

您需要明确指定index=True或创建Index对象:
Index('myindex', mytable.c.col1, mytable.c.col2, unique=True),它允许更多地控制索引的其他参数,例如多个列的名称和支持。

有关详细信息,请参阅Indexes

答案 1 :(得分:1)

正如范恩的回答所表明的那样,您应按照文档所示明确添加索引

外键的实现是特定于数据库的,某些数据库(例如MySQL )仍会自动为外键列创建索引,而其他数据库则不会。请参阅上面评论中的讨论。

例如来自MySQL docs

MySQL要求对外键列进行索引;如果您创建一个 有外键约束但在给定列上没有索引的表 索引已创建。