Mysql - 在重复键上插入不同的值

时间:2016-01-08 03:19:10

标签: php mysql

我有一个名为history的表,用于跟踪对另一个表所做的更改。基本思路是能够跟踪最后更新特定条目的人。

当我第一次插入时,它会创建一个显示操作字段的条目为' UPLOAD'。下次输入相同的密钥时,我需要创建一个新的历史记录,其中的操作是“更新”,这样我就可以看到它何时首次制作,以及之后更新了该密钥。

不幸的是,在DUPLICATE KEY INSERT ...不是一个mysql构造。 我该怎么办?

到目前为止,我有:

INSERT INTO history (key,userID,action,note,date)
VALUES (?,?,?,?,?) 

*行动的价值始终是“上传”,即使它是一次更新 **问号来自准备好的声明绑定

如果密钥存在于历史记录中,我需要将操作更改为更新'并创建一个新条目 - 它永远不应该更改已存在的条目。

1 个答案:

答案 0 :(得分:4)

  1. 您可以使用触发器

    <th>
  2. 但它们很难跟踪,特别是没有人在MySQL上使用它们。

    1. 在进行更新之前,实际验证PHP中是否存在该内容,然后决定是否插入历史记录。