0

我有一个User带有 field的 Django 模型balance,并用它维护一个balance_last_updated DateTimeField

为了免费更新余额竞争条件,我需要原子地读取然后balance_last_updated在我的 Django 视图中设置。这样,任何更新余额的线程都会在不同的时间段内这样做(对吗?)。

我该怎么做呢?请注意,我使用的是 MySQL MyISAM 表,它似乎不支持Django事务

4

1 回答 1

2

如果您使用的是 Django 1.4,则可以使用select_for_update来实现此目的。但前提是您的数据库后端支持事务。MyISAM 没有,所以如果原子性(或一般的 ACID)对您的项目很重要,我建议切换到 InnoDB 引擎或 PostgreSQL。

于 2012-09-18T13:20:10.303 回答