SQLAlchemy声明:没有任何主键的表?

Det*_*ant 6 orm schema database-design sqlalchemy

如何使用没有主键的ORM Declarative类创建表?如果我没有制作任何专栏,它就无法启动primary_key = True.

Den*_*ach 11

SQLAlchemy核心不会抱怨缺少主键,因此可以创建这样的表Table(…).但是ORM的设计需要一种方法来识别对象所对应的行,因此在ORM中不可能使用没有主键的表.

为什么以后需要添加此索引?这是真正的要求还是试图解决一些可能以其他方式解决的问题?如果您需要复合主键,则可以使用primary_key=True几个参数Column或通过指定PrimaryKeyConstraint(…)in 来定义它__table_args__.

  • 你也可以把"primary_key"参数中"primary"的列列表放到mapper()中,声明为`__mapper_args__ = {"primary_key":( col1,col2)}}` (6认同)