我試圖執行INSERT到MySQL服務器,以避免「讀書」表的兩倍,這就是爲什麼我做了以下查詢:對重複鍵忽略ID
INSERT INTO dailykpi
(
kpiType,
kpiRowType,
kpiRowTypeValue,
kpiYear,
kpiWeek,
kpiValue
)
VALUES
(
$kpiType,
$kpiRowType,
$sat,
$currentYear,
$currentWeek,
$value
)
如果註冊表已經存在(它會每天到一個星期結束),我更新的值:
INSERT INTO dailykpi
(
kpiType,
kpiRowType,
kpiRowTypeValue,
kpiYear,
kpiWeek,
kpiValue
)
VALUES
(
$kpiType,
$kpiRowType,
$sat,
$currentYear,
$currentWeek,
$value
)
ON DUPLICATE KEY UPDATE
kpiType = $kpiType,
kpiRowType = $kpiRowType,
kpiRowTypeValue = $sat,
kpiYear = $currentYear,
kpiWeek = $currentWeek,
kpiValue = $value
但它仍然插入重複條目。我猜是因爲我的auto_increment ID列,這總是不同的,但我想以及如此微不足道的SQL,所以也許我失去了一些東西。
任何幫助,歡迎提前致謝!
編輯:我忘了提及該ID是一個auto_incrementable INT PRIMARY KEY,其餘列是INT(一個外鍵),其中一個是FLOAT,沒有人是唯一鍵或任何這些,他們應該?
什麼組合的列包含一個獨特的集?所有這些(除了自動增量)?您需要在這些列上創建一個'UNIQUE INDEX'。 –