使用增量创建行或更新

时间:2015-01-21 22:54:24

标签: sql sqlalchemy flask-sqlalchemy

我正在使用Flask SQLAlchemy,我有以下数据库架构:

Table(
  composite_primary_key,
  count INTEGER
)

我想创建一个create或update语句,我可以检查是否存在具有给定复合主键的行。

  1. 如果找到复合主键,请通过向其添加内容来更新行的计数
  2. 如果找不到,请使用该复合主键和我拥有的数字创建一个新行。
  3. 在SQLAlchemy中是否有一些现有的方法可以做到这一点?什么不涉及编写我自己的查询?

1 个答案:

答案 0 :(得分:0)

假设您正在使用MySQL,您需要的是" INSERT ... ON DUPLICATE KEY UPDATE ..."语句请参阅http://dev.mysql.com/doc/refman/5.6/en/insert-on-duplicate.html不幸的是(因为它是特定于MySQL的),此时SQLAlchemy不支持此构造,因此您必须构建自己的(文字)SQL查询:

session.execute(" INSERT ... ON DUPLICATE KEY UPDATE ...")

相关问题