用户
 找回密码
 入住 CI 中国社区
搜索
查看: 3209|回复: 6
收起左侧

[讨论/交流] 急询select...for update语句怎么用Active Record模式实现?

[复制链接]
发表于 2015-3-20 21:56:32 | 显示全部楼层 |阅读模式
如题,难道无法实现只能用原生写法?
发表于 2015-3-24 15:33:04 | 显示全部楼层
select ... for update是select时的一个更新锁(update lock),对此,CI并无特别处理。

是的,答案确是:“只能用原生写法”,也许可自行编写helper函数作为编程辅助。

顺带一提,锁是一件麻烦的东西:

1. 若select ... for update后因种种原因,并无进行更新,要考虑是否要开锁。

2. 要注意锁了什么,有时是锁了记录,但有时可能是锁了表。锁就是后来者要等,也就是可能会拖慢其它工作。

3. 小心“死锁”。
发表于 2015-3-21 08:04:58 | 显示全部楼层
$this->db->select('*')->get('admin')->result()
发表于 2015-3-21 08:06:18 | 显示全部楼层
$this->db->update('admin',$data,array('id'=>1));  $data是个数组
 楼主| 发表于 2015-3-21 22:41:22 | 显示全部楼层
楼上...我想问的是select...for update语句,也就是查询的同时加写锁的select语句,不是select和update啊
 楼主| 发表于 2015-3-24 14:08:56 | 显示全部楼层
顶一下,求解~~
 楼主| 发表于 2015-3-24 16:51:27 | 显示全部楼层
感谢燃云回答并给出忠告!

本版积分规则