【问题标题】:TurboGears2/SQLAlchemy: Inserting a new row into a table with an autoincrement Primary KeyTurboGears2/SQLAlchemy:将新行插入具有自动增量主键的表中
【发布时间】:2009-09-02 07:37:06
【问题描述】:

我是一个菜鸟,我正试图了解 TG2 和 SQLAlchemy。我目前正在努力解决的具体问题是如何在 PK 字段配置为自动增量时向表中插入新行。

例如:

在我的 myproject.model.myproject.py 文件中,我定义了下表:

class Dj(DeclarativeBase):
    __tablename__ = 'djs'

    #{ Columns

    djID = Column(Integer,  autoincrement=True, primary_key=True)
    djname = Column(String)
    djwebpage = Column(String)
    #}

在我的 websetup.py 文件中,我用一些初始数据填充它。由于这是第一行数据,所以我作弊,只是将djID定义为“1”

dj = model.Dj("1", "DJ Anonymous", "http://www.djanonymous.com")

如果我希望 websetup.py 在 djs 表中创建第二行(通过对象 Dj),我该怎么做?

我之前尝试了许多不同的方法,但都没有运气。例如,如果我使用相同的格式但只包含 2 个字符串(对于 djname 和 djwebpage 列),我会收到一个错误,抱怨我没有给它足够的参数。

当然,最终,我需要弄清楚如何创建一个控制器以允许我将新条目插入到表中......但我会一步一步地学习,并感谢成功预- 通过 websetup.py 文件用多行填充表格。希望这会给我一些线索,让我可以将它带到下一步。

提前致谢!

【问题讨论】:

    标签: sqlalchemy turbogears turbogears2


    【解决方案1】:

    嗯,你的问题很简单(让我印象深刻的是这么长时间都没有得到答复:)。

    • 首先为什么将您的 id 列命名为“djID”?为什么不只是 id?
    • 第二次你不要插入它,这就是为什么它是自动增量的。
    • 第三篇first basic SA 教程解释了这一点

    【讨论】:

      猜你喜欢
      • 2012-02-22
      • 2014-06-05
      • 2010-11-25
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多