簡體   English   中英

提供其他值時,使用SQLAlchemy插入數據會使用列默認值

[英]Inserting data with SQLAlchemy uses column defaults when providing other values

我無法覆蓋列默認值。 我為subjectcan_retry插入了一個具有不同值的行。 但是,當我檢查表時,仍然是MathFalse 我在這里做錯了什么?

from sqlalchemy import *

db = create_engine('sqlite:///myapp-quizzes.db')
metadata = MetaData(db)

quizzes = Table("quizzes", metadata,
    Column("id", Integer, primary_key = True),
    Column("subject", String, default = "Math"),
    Column("description", String),
    Column("answer_a", String),
    Column("answer_b", String),
    Column("answer_c", String),
    Column("answer_d", String),
    Column("can_retry", Boolean, default = False)
)
quizzes.create()

i = quizzes.insert()
i.execute({
    "subject": "Biology",
    "description": "Where is the heart?",
    "answer_a": "In the head",
    "answer_b": "In the arm",
    "answer_c": "In the gut",
    "answer_d": "Dunno",
    "can_retry": True
})

列表中的字典必須具有完全相同的鍵。 當然,這適用於帶有字典的多個插入。

quizz_list = [
  { 
     ...
     'subject': 'Math',
     'can_retry': False
  },
  {
     ...
     'subject': 'Biology',
     'can_retry': True
  }
]

暫無
暫無

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

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