簡體   English   中英

SQLAlchemy中的外鍵約束

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM