Php 替换为vs更新

Php 替换为vs更新,php,mysql,Php,Mysql,我最近发现了MYSQL函数REPLACE-INTO,因此与INSERT-INTO,UPDATE相比,它获得了成功。。我应该在什么时候使用替换为,而不是使用其他功能? 什么时候可以使用“替换为”或“过度更新为” 我当前更新的标准程序是: 检查用户输入出口 查询存在行的数据库 更新行 我的插入的标准程序是 检查用户输入是否存在 检查行是否存在 如果没有,则插入 如果没有,则返回一个错误 所以,总的来说替换为vs更新。如果可以接受,利弊如何 更换旨在缓解以下情况: 检查是否存在具有相同PK的记录 如果

我最近发现了MYSQL函数
REPLACE-INTO
,因此与
INSERT-INTO
UPDATE
相比,它获得了成功。。我应该在什么时候使用
替换为
,而不是使用其他功能?
什么时候可以使用“替换为”或“过度更新为”

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

  • 检查用户输入出口
  • 查询存在行的数据库
  • 更新行
  • 我的插入的标准程序是

  • 检查用户输入是否存在
  • 检查行是否存在
  • 如果没有,则插入
  • 如果没有,则返回一个错误

  • 所以,总的来说<代码>替换为
    vs
    更新
    。如果可以接受,利弊如何

    更换旨在缓解以下情况:

  • 检查是否存在具有相同PK的记录
  • 如果是,请删除该行并为具有给定行的记录插入新行
  • 如果否,请插入新记录

  • 根据文档,替换相当于插入,除了删除之前已删除PK的任何现有记录之外。

    替换旨在缓解以下情况:

  • 检查是否存在具有相同PK的记录
  • 如果是,请删除该行并为具有给定行的记录插入新行
  • 如果否,请插入新记录

  • 根据文档,替换相当于插入,除了删除之前已删除PK的任何现有记录之外。

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


    因此,这样做的真正意义在于,您不必在尝试插入之前检查某个主键/唯一键是否已经存在(这通常会导致错误)。

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


    因此,这样做的真正目的是让您不必在尝试插入之前检查某个主键/唯一键是否已经存在(这通常会导致错误)。

    如果您想在出现类似情况时给用户一个错误,请使用您描述的方法2!否则,如果数据库中是否已经存在该记录并不重要,并且您只想替换该记录,请使用您描述的第一种方法

    如果您想在出现类似情况时给用户一个错误,请使用您描述的方法2!否则,如果数据库中是否已经存在该记录并不重要,并且您只想替换该记录,请使用您描述的第一种方法

    #2并不完全正确。它不会
    UPDATE
    但是
    DELETE+INSERT
    a行是的,从技术上讲它会执行DELETE+INSERT。我只想描述一下用例。那是什么?“如果是,则使用给定的记录更新记录”语句incorrect@db-移动:它仍然需要一些重新编码,因为它可能会混淆一个人并导致数据丢失#2并不完全正确。它不会
    UPDATE
    但是
    DELETE+INSERT
    a行是的,从技术上讲它会执行DELETE+INSERT。我只想描述一下用例。那是什么?“如果是,则使用给定的记录更新记录”语句incorrect@db-移动:它仍然需要一些重新编码,因为它可能会混淆一个人并导致数据丢失。方法只是一个例子,总的来说,问题是使用
    替换为
    的利弊和可接受的时间,
    REPLACE
    是一种速记。否则,您必须使用至少两个查询来完成此操作。当你需要的时候使用它。方法只是一个例子,总的来说,问题是什么时候使用
    REPLACE-INTO
    的利弊和一个可接受的时间。我想说,
    REPLACE
    是一个速记。否则,您必须使用至少两个查询来完成此操作。当你需要的时候使用它。