就是多个程序一起读一张表,然后对读到的记录进行处理,处理后,更新状态为已读。怎么用锁的方式,怎么防止一条记录被多个程序多次读到。但是不影响用户INSERT,UPDATE,DELETE操作,
就是另一个程序select的时候等待,INSERT,UPDATE,DELETE操作时,不用等待 .

解决方案 »

  1.   

    执行SELECT FOR UPDATE 后 ,insert 会出现等待情况,希望那位帮忙解决下,
      

  2.   

    myisam lock table 表名 write 后,别的程序就无法对表 select update delete 等操作了的,但是我想除了select外,可以操作 update等操作 
      

  3.   

    不需要用锁啊。你的SELECT的同时,本身不加锁,其它进程就可以进行UPDATE的。怎么防止一条记录被多个程序多次读到。 这句话想实现什么功能?建议举例说明。
      

  4.   

    那没办法,只能排它加锁,加上排它锁之后,其它进程就无法进行UPDATE了。但你的表应该是INNODB的,这样锁是加在记录上的,而不是表上的。 这样你读某条记录的同时,表中其它记录仍可以被其它进程更新。
      

  5.   

    用SELECT FOR UPDATE取出记录,更新状态为已读,再提交,其它程序就不会取出此条记录了,再没有
    提交之前,其它程序不能UPDATE此条记录
      

  6.   


    这个方法是好,不过此时就不能向这个表添加记录了,insert会出现等待现象。