我有一个包含四列的表格,(id
,searchstring
,count
,timestamp
)。
我希望能够使用ON DUPLICATE KEY UPDATE
功能在输入重复时更新searchstring
的计数。
但是,searchstring必须是能够执行此操作的主键,并且我的id会自动设置为我的主键,因为它是自动递增的。
有没有办法解决这个问题?
答案 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);