我如何在cakephp和postgres数据库中进行行锁定?

时间:2012-09-13 12:48:45

标签: postgresql cakephp cakephp-2.0

我在我的cakephp项目中使用postgres数据库。 我有一个包含一些数据的表和一个名为“status”的列。 “状态”它是枚举,可以“等待”,“in_progress”,“已完成”。

我的脚本必须获取第一个找到状态=等待的记录,将状态更改为“in_progress”,并在一个原子过程中获取此记录的id和所有这些。

计算后需要id才能将状态更改为“已完成”。 将有许多这样的脚本并行工作,这就是为什么我需要这个简单的“行锁定”。

我第一次使用postgres数据库 - 有没有简单的方法来实现这一目标? 也许cake支持一些方便的方法吗?

1 个答案:

答案 0 :(得分:1)

使用cakePHP它没有什么样的数据库,只需使用$this->Model->find...修改你的状态然后'$ this->模型 - >保存....`

$row = $this->Model->find('first',array('conditions' => array('Model.status' => 'waiting')));
$row['Model']['status'] = 'in progress';
$this->Model->save($row);
(...do something...)

$row['Model']['status'] = 'completed';
$this->Model->save($row);

可能你想在循环中运行它并将某种const作为状态......