更新INTO与更新

时间:2014-01-13 23:08:47

标签: php mysql

我最近发现了MYSQL函数REPLACE INTO,所以与INSERT INTOUPDATE相比,它得到了滚动。我应该何时使用REPLACE INTO而不是其他使用的REPLACE INTO功能? 何时可以使用替换为Update into

我当前更新的标准程序是:

  1. 检查用户输入退出
  2. 查询存在行的数据库
  3. 更新行
  4. 我的插入的标准程序是

    1. 检查用户输入是否存在
    2. 检查行是否存在
    3. 如果没有,请插入
    4. 如果没有,则返回错误
    5. 总的来说。 UPDATE vs {{1}}。什么时候可以接受,利弊?

3 个答案:

答案 0 :(得分:3)

替换旨在简化以下情况:

  1. 检查是否存在具有相同PK的记录
  2. 如果是,请删除该行并为具有给定记录的记录插入新行
  3. 如果不是,请插入新记录
  4. 根据文件,REPLACE等同于INSERT,除了删除之前已删除PK的任何现有记录。

答案 1 :(得分:0)

REPLACE INTO最好被视为条件插入。它将查看要插入的记录的主要/唯一键,如果其中一个唯一键已存在,它将更新现有记录的值而不是插入。此更新是通过删除旧行并插入新行数据来完成的。

实际上,这样做可以让你在尝试插入之前不必检查某个主/唯一密钥是否已经存在(这通常会导致错误)。

答案 2 :(得分:0)

如果您想在发生类似情况时向用户提供错误,请转到您所描述的方法2!否则,如果数据库中已存在并且您只想替换记录无关紧要,请使用您描述的第一种方法!