Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQLAlchemy:带有ForeignKey的列是否自动创建索引?_Sqlalchemy - Fatal编程技术网

SQLAlchemy:带有ForeignKey的列是否自动创建索引?

SQLAlchemy:带有ForeignKey的列是否自动创建索引?,sqlalchemy,Sqlalchemy,带ForeignKey的列是否自动创建索引? 或者我需要手动添加index=True some_field = Column(Integer, ForeignKey(SomeModel.id)) 谢谢 您确实需要指定index=True或显式创建index对象: Index('myindex',mytable.c.col1,mytable.c.col2,unique=True),它允许对索引的其他参数进行更多控制,例如名称和对多个列的支持 有关更多信息,请参阅。正如van的回答所示,您应该按照

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

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

谢谢

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


有关更多信息,请参阅。

正如van的回答所示,您应该按照文档的指示明确添加索引

外键的实现是特定于数据库的,一些数据库(如MySQL)仍然会自动为foreignkey列创建索引,但其他数据库不会。见上文评论中的讨论

e、 g来自:

MySQL要求外键列被索引;如果您创建一个 在给定列上具有外键约束但没有索引的表 创建索引


Sqlalchemy不会为您这样做,但mysql的Inno引擎会自动这样做。主键也是这样吗?@BerislavLopac:我相信大多数(如果不是全部的话)RDBMS会自动为主键创建索引。@van:Postgres不会为您创建外键索引,不像mysql的InnoDB引擎。@blong:看到这个答案了吗,其中包括: