数据表结构如下:DROP TABLE IF EXISTS `wowowo`;
CREATE TABLE `wowowo` (
  `guid` bigint(10) NOT NULL,
  PRIMARY KEY (`guid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;  
数据内容:INSERT INTO`wowowo` (`guid`) VALUES ('1');
INSERT INTO  `wowowo` (`guid`) VALUES ('2');
INSERT INTO  `wowowo` (`guid`) VALUES ('3');
INSERT INTO `wowowo` (`guid`) VALUES ('4');
INSERT INTO  `wowowo` (`guid`) VALUES ('5');
  我想批量更新表guid 值 + 1 
UPDATE `wowowo` SET `guid`=guid+1;报错:[Err] 1062 - Duplicate entry '2' for key 'PRIMARY'请问要怎么样才能批量把guid值+1啊

解决方案 »

  1.   


    DROP TABLE IF EXISTS `wowowo`;
    CREATE TABLE `wowowo` (
      `guid` bigint(10) NOT NULL,
      PRIMARY KEY (`guid`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;INSERT INTO`wowowo` (`guid`) VALUES ('1');
    INSERT INTO  `wowowo` (`guid`) VALUES ('2');
    INSERT INTO  `wowowo` (`guid`) VALUES ('3');
    INSERT INTO `wowowo` (`guid`) VALUES ('4');
    INSERT INTO  `wowowo` (`guid`) VALUES ('5');ALTER TABLE `wowowo` drop PRIMARY KEY;UPDATE `wowowo` SET `guid` = `guid` + 1;ALTER TABLE `wowowo` ADD PRIMARY KEY (`guid`);SELECT * from `wowowo`;
      

  2.   

    因为guid是主键,所以不能有重复数据
      

  3.   


    UPDATE `wowowo` SET `guid`=guid+1 order by guid desc;