我有一个包含四列的表(id
,searchstring
,count
,timestamp
)。
我希望能够使用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/