[英]sqlalchemy: order of query result unexpected
我在MySQL中使用SQLAlchemy,並且有一個帶有兩個外鍵的表:
class CampaignCreativeLink(db.Model):
__tablename__ = 'campaign_creative_links'
campaign_id = db.Column(db.Integer, db.ForeignKey('campaigns.id'),
primary_key=True)
creative_id = db.Column(db.Integer, db.ForeignKey('creatives.id'),
primary_key=True)
然后,我使用for循環將3個項目插入表中,如下所示:
session.add(8, 3)
session.add(8, 2)
session.add(8, 1)
但是當我檢查桌子時,物品的順序相反
8 1
8 2
8 3
而且查詢也反向顯示順序。 這是什么原因造成的,如何使訂單與添加訂單時的訂單相同?
表是一組行,因此除非您指定ORDER BY
否則不能保證其具有任何順序。
在MySQL(InnoDB)中,主鍵充當聚集索引。 這意味着這些行將按照主鍵指定的順序進行物理存儲,在本例中為(campaign_id, created_id)
,而不考慮插入順序。 如果您未指定ORDER BY
通常是返回行的順序。
如果需要按特定順序返回行,請在查詢時指定ORDER BY
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.