这是一种有效的更新方法吗?

时间:2010-11-19 06:01:39

标签: php mysql html database

我有一个包含多个组合框和文本框的长格式。

我正在使用此表单进行注册,我也使用相同的表单进行更新。

  1. 我使用INSERT查询完成了注册过程。
  2. 对于更新,我有一个想法。 我应该首先删除(UPDATE)记录,然后再将其重新插入数据库,而不是使用DELETE查询,因为我之前已经完成了插入过程注册,我可以重用代码。
  3. 这种方法有什么问题吗?

2 个答案:

答案 0 :(得分:2)

有些情况(特别是在批量数据移动工作等),这样做可能有意义。

但是在你的情景中,我真的没有理由为什么你应该按照你的意思行事。

除了为您节省的开发时间可以忽略不计之外,我从您的方法中看不出任何好处。在缺点上,每当用户数据更新时,您的应用程序将执行2个SQL语句(DELETE + INSERT)而不是1个UPDATE。根据应用程序的工作方式,您还需要一些其他逻辑来跟踪用户配置文件的更改,因为像dtCreated等这样的东西是不够的。

我只想使用简单的UPDATE语句。

答案 1 :(得分:1)

您可以使用使用相同语法的REPLACE INTO命令。在屏幕后面,它将执行DELETE然后INSERT。如果您使用InnoDB表并且已经建立了关系,那么如果您认为REPLACE INTO将像UPDATE一样工作,那么这将非常危险。结果,由于级联规则导致已删除的行

您考虑使用DELETE后跟INSERT进行更新,因为您已准备好insert-sql。那么你可以使用UPDATE类似的语法进行插入。这样就可以根据你的任务使用INSERT / UPDATE了。

所以而不是:

INSERT INTO products (name) VALUES ('iPhone');

..你会用:

INSERT INTO products SET name='iPhone';

与更新看起来非常相似:

UPDATE products SET name='iPhone' WHERE id=1;

几乎一样。