我试图执行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'。 –