簡體   English   中英

如果不存在外鍵,SQLAlchemy會自動創建條目

[英]SQLAlchemy Automatically Create Entry If Doesn't Exist As Foreign Key

我有大量的.create()調用依賴於另一個表( Users )中的ForeignKey 但是,在代碼中我實際上沒有創建用戶的意義。

有沒有一種方法可以在SQLAlchemy的另一個表上為每個外鍵創建一個Users條目?

例如:

class Rr(db.Model):
  __tablename__ = 'rr'
  id = db.Column(db.Integer, primary_key=True)
  submitter = db.Column(db.String(50), db.ForeignKey('user.username'))

class User(db.Model):
  __tablename__ = 'user'
  username = db.Column(db.String, primary_key=True)

因此,如果我調用Rr(id, submitter=John) ,有沒有辦法在用戶表中創建一個John條目(如果尚不存在)?

我知道我可以圍繞.create()方法創建一個包裝器,以便它檢查submitter並創建一個包裝器.create()如果不存在),但這似乎多余,因為存在大量希望自動創建Users的模型。

我想不出任何符合您要求的orm或sql實現,但是可以有效地完成此SO答案中描述的目標: SQLAlchemy是否具有與Django的get_or_create等效的功能?

基本上是從數據庫中獲取用戶(如果存在的話),如果它沒有創建的話。

這種方法的唯一缺點是,您需要執行2個查詢而不是一個查詢,但我認為沒有一種方法可以完成您在一個查詢中查找的內容

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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