现在又一个A库,存在一张a表
现在想把a表中的主键自增长的ID设置成每次增长2,
怎么去做?
set @@auto_increment_increment =2;
会把这台服务器上面所有的库和表都改了,能不能只改一张表 ? 

解决方案 »

  1.   


    这个是个办法,但是有点危险
    这么做的目的是做数据同步的,因为数据库是分布式的,多台同时插入,肯定会主键重复
    所以才想用这个办法弱弱的问句:一张表能建多个触发器吗?
    如果用触发器  在before insert 的时候 主键+1或者+2 那么在php 里面用mysql_insert_id去主键的时候  是取的 变化之前的 还是之后的 ?             
      

  2.   

    一种方法就是不改。显示的时候直接 select id*2-1 就行了。用触发器,也没办法准确实现。并发上的问题,还有本表是无法更新的。
      

  3.   


    能,一张表可以有 before insert / afte insert / before update / .... 多个触发器。
     在before insert 的时候 主键+1或者+2  无法实现。也谈不上什么 "mysql_insert_id去主键的时候  是取的 变化之前的 还是之后的"
      

  4.   

    在before insert 的时候 主键+1或者+2  无法实现。也谈不上什么 "mysql_insert_id去主键的时候 是取的 变化之前的 还是之后的"
    拿在after inster 呢?取出来应该是更改之前的,对吧 
      

  5.   

    after insert 之后,你也无法直接实现在触发器中去更新这个ID!或者简单点说,用触发器无法实现你所要的功能。
      

  6.   

    巨汗, MYSQL的触发器不能针对自身操作,所以LZ的问题不要再与触发器挂钩了。
      

  7.   

    悲剧啊~~
    两张表在两台服务器上同步插入,用主从同步,为防止主键冲突,有啥好的方法买 ? 
    除了set @@auto_increment_increment =2,他会影响整个库的结构 
      
      

  8.   

    两张表在两台服务器上同步插入,用主从同步,为防止主键冲突,有啥好的方法买 ?  
    再加个字段 (node int defult 2,id int auto_increment,   primary key(node,id)