D2002 发表于 2012-10-25 21:51

并发修改数据,加锁是怎么实现的?

本帖最后由 D2002 于 2012-10-25 22:07 编辑

举一个简单的例子,比如访问系统共用的流水号。

CREATE TABLE auto_seq (
        seq_id   char(2) not null,
        seq_noInteger not null
);

多个进程并发访问这个表auto_seq, 访问时做2个操作:
1) update auto_seq set seq_no = seq_no + 1 where seq_id = '01';
2) select seq_no into n_seqno from auto_seq where seq_id = '01';

如果不对记录加锁,这样处理结果可能会不正确的。当然可以用begin work/commit work交易保护方式来实现。
但Informix中是怎样处理记录加锁的?

liaosnet 发表于 2012-10-25 22:12

锁等~脏读~等很多种方式。。。。

D2002 发表于 2012-10-26 19:05

liaosnet 发表于 2012-10-25 22:12 static/image/common/back.gif
锁等~脏读~等很多种方式。。。。

请按第1楼例子,给出几个示例,最好是效率高的那种
先谢了
页: [1]
查看完整版本: 并发修改数据,加锁是怎么实现的?