我有以下查詢:MySQL的 - ON只有當兩個獨特的匹配字段重複鍵UPDATE,INSERT其他
"INSERT INTO `occ_apps` (`occ_date`, `service_tag`, `counter`) VALUES (?, ?, '1') ON DUPLICATE KEY UPDATE `counter` = (`counter`+1)"
目前它的遞增counter
當任occ_date
或service_tag
在一排匹配。 其中occ_date
和service_tag
是unique
字段,我無法將主鍵設置爲唯一字段。
我跑了以下內容:
ALTER TABLE occ_apps
DROP PRIMARY KEY,
ADD PRIMARY KEY (occ_date, service_tag);
而且我得到的錯誤:
`#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key`
我想它來更新(增量)計,只有當occ_date
和service_tag
兩場比賽(已經存在)在一行中,否則它應該插入一個新行。
Software version: 5.5.53-MariaDB-1~wheezy - mariadb.org binary distribution
,當我跑DESC occ_apps
我得到:
Field Type Null Key Default Extra
serial_no int(255) NO PRI NULL auto_increment
occ_date varchar(255) NO UNI NULL
counter int(255) NO NULL
service_tag varchar(255) YES UNI NULL
請幫幫忙!
'ADD UNIQUE KEY(occ_date,service_tag)'這應該對你有所幫助。 –
你可以分享'desc occ_apps'結果。 –
@KeyurShah總是更好地要求SHOW CREATE TABLE而不是 – e4c5