有主键和自动递增字段

时间:2011-05-21 23:14:15

标签: mysql primary-key

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

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

1 个答案:

答案 0 :(得分:0)

是,将主键设置为包含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);