【问题标题】:Parameterize the delete function sqlalchemy参数化删除函数 sqlalchemy
【发布时间】:2017-08-09 20:52:42
【问题描述】:

我有一个函数可以从 psql 数据库中删除一行

def delete_from_database():
    engine = connect_to_database()
    # define meta information
    metadata = MetaData(bind=engine)
    session = sessionmaker(bind=engine)()
    country_table = Table('countries', metadata, autoload=True)
    # delete
    delete_country_query = country_table.delete(country_table.c.id == 14)
    session.execute(delete_country_query)
    session.commit()

我可以参数化表名,但我也想参数化要搜索然后删除的键值对。 在上面的例子中country_table.c.id id 是表中的列,但我想概括列名

【问题讨论】:

  • 请举个例子

标签: python sqlalchemy


【解决方案1】:

因为 Table.c 是一个集合,它应该是:

def delete_from_database(table_name, column_name, value):
  engine = connect_to_database()
  # define meta information
  metadata = MetaData(bind=engine)
  session = sessionmaker(bind=engine)()
  country_table = Table(table_name, metadata, autoload=True)
  # delete
  delete_country_query = country_table.delete(country_table.c[column_name] == value)
  session.execute(delete_country_query)
  session.commit()

here

【讨论】:

    猜你喜欢
    • 2018-07-26
    • 2019-08-25
    • 1970-01-01
    • 2022-01-20
    • 2016-11-25
    • 1970-01-01
    • 2017-11-16
    • 2017-09-02
    • 2017-07-26
    相关资源
    最近更新 更多