0

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

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

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

我第一次使用 postgres db - 有什么简单的方法可以做到这一点吗?也许蛋糕支持一些方便的方式来做到这一点?

4

1 回答 1

1

与 cakePHP 没有区别你有什么样的数据库,只需使用$this->Model->find...修改你的状态,然后 '$this->Model->save....`

$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 作为状态...

于 2012-09-13T13:23:19.300 回答