我有一个包含四列的表(idsearchstringcounttimestamp)。
我希望能够使用ON DUPLICATE KEY UPDATE功能在输入重复项时更新searchstring的计数。

但是,searchstring必须是能够执行此操作的主键,并且我的ID自动设置为我的主键,因为它是自动递增的。
有没有办法解决?

最佳答案

是的,将主键设置为同时包含id和searchstring

CREATE TABLE  `test`.`new table` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `searchstring` varchar(45) NOT NULL,
  `count` int(10) unsigned NOT NULL,
  `timest` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`,`searchstring`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


您可以使用以下方法更改现有表:

ALTER TABLE `test`.`new table` DROP PRIMARY KEY,
 ADD PRIMARY KEY  USING BTREE(`id`)
 ADD UNIQUE INDEX ss(searchstring);

关于mysql - 具有主键以及自动递增字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6085015/

10-10 22:19