[英]Foreign key constraints in SQLAlchemy
我正在使用SQLAlchemy的ORM端,并且我已经定义了一个列与另一个模型具有外键关系,使用:
Base = declarative_base()
class Model1(Base):
__tablename__ = 'm1'
Name = Column(String, primary_key = True)
info = Column(String)
class Model2(Base):
__tablename__ = 'm2'
Name = Column(String, primary_key = True)
info = Column(String)
other_model = Column(String, ForeignKey('m1.Name'))
但是,我将其other_model
属性中并不重要,即使没有具有该Name
Model1
实例,它似乎也很乐意将其提交到数据库。
看起来答案是在我使用的数据库(SQLite)中,而不是SQLAlchemy。 SQLite版本<3.6.1(AFAIK)不支持外键约束。
因此,答案非常类似于外键和SQLAlchemy的答案 。
当我使用Windows时,我能够访问pysqlite2页面 ,打包的安装程序具有版本3.7.6.2 sqlite,然后最终实现由sqlite引擎和方言上的SQLAlchemy页面辅助。 这个问题也与升级过程有关。
最后,在决定是否强制执行外键约束时,SQLite引擎有点气质, 这个SO问题在强制执行外键时非常有用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.