更新重复键上的复合键
Update Composite Key On Duplicate Key
我需要更新新行,如果两者都存在:date='$dat'
和 empId='$who
(作为组合键)。但如果其中之一或两者不同,请插入:
$sql= "INSERT INTO history
SET endtimestamp='$now',end='$signature',date='$dat',empId='$who'
ON DUPLICATE KEY UPDATE endtimestamp='$now',end='$signature'";
来自 MySQL 文档:
http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html
If you specify ON DUPLICATE KEY UPDATE, and a row is inserted that
would cause a duplicate value in a UNIQUE index or PRIMARY KEY, an
UPDATE of the old row is performed.
主键是单独的(每列)。您需要创建一个包含两列的复合 UNIQUE 索引,然后更新才能正常工作。
运行 数据库中的这个:
CREATE UNIQUE INDEX unq_employee_id_date ON history (empId, date);
我需要更新新行,如果两者都存在:date='$dat'
和 empId='$who
(作为组合键)。但如果其中之一或两者不同,请插入:
$sql= "INSERT INTO history
SET endtimestamp='$now',end='$signature',date='$dat',empId='$who'
ON DUPLICATE KEY UPDATE endtimestamp='$now',end='$signature'";
来自 MySQL 文档: http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html
If you specify ON DUPLICATE KEY UPDATE, and a row is inserted that would cause a duplicate value in a UNIQUE index or PRIMARY KEY, an UPDATE of the old row is performed.
主键是单独的(每列)。您需要创建一个包含两列的复合 UNIQUE 索引,然后更新才能正常工作。
运行 数据库中的这个:
CREATE UNIQUE INDEX unq_employee_id_date ON history (empId, date);