【发布时间】:2019-05-03 06:25:58
【问题描述】:
我想创建一个 (date,id) 形式的复合主键。我的代码目前看起来有点像这样
class Gyroinfo(Base):
__tablename__ = 'GYROINFO'
id = Column(Integer, primary_key=True,autoincrement = True)
date = Column(DateTime, primary_key = True)
但这默认为 (id, date) 形式的主键。如何切换主键顺序?
【问题讨论】:
-
在 id 工作之前初始化日期。我不明白为什么订单会有所不同
-
在 id 之前初始化日期似乎不起作用。
-
你能给我们举个例子说明为什么顺序很重要吗?这是一个约束,所以顺序没有任何区别。
-
我想在表格上放一个 (date,id) 形式的索引,所以如果我可以将主键设置为 (date,id) 形式,我们就不必声明任何额外的索引。
-
您使用的是什么数据库?我刚刚对
sqlite进行了快速测试,更改列的定义顺序确实改变了在发出的 sql 中指定列的顺序。例如。 id/日期:CREATE TABLE "GYROINFO" (id INTEGER NOT NULL, date DATETIME NOT NULL, PRIMARY KEY (id, date))和日期/id:CREATE TABLE "GYROINFO" (date DATETIME NOT NULL, id INTEGER NOT NULL, PRIMARY KEY (date, id))。
标签: python sqlalchemy