Database 删除/插入有时能比更新数据库记录更好吗?

Database 删除/插入有时能比更新数据库记录更好吗?,database,Database,我有一个网页,人们在其中创建管道订单 订单存储在下表中: 订单以获取装运/客户信息 每个订单可以包含多条记录的请求的\u工件 每个订单还可以包含许多记录的分配 每个作业可以包含多个记录的剪切 当您去编辑其中一个时,所有这些信息都放在一个页面上进行编辑 在我看来,当用户单击Finish时,唯一的处理方法是删除旧订单的所有记录并重新插入新的内容。关于删除和重新插入的内容对我来说似乎是一种不好的做法,因此我想知道我是否遗漏了一些内容。您应该使用更新: UPDATE table_name SET c

我有一个网页,人们在其中创建管道订单

订单存储在下表中:

  • 订单以获取装运/客户信息
  • 每个订单可以包含多条记录的请求的\u工件
  • 每个订单还可以包含许多记录的分配
  • 每个作业可以包含多个记录的剪切
当您去编辑其中一个时,所有这些信息都放在一个页面上进行编辑


在我看来,当用户单击Finish时,唯一的处理方法是删除旧订单的所有记录并重新插入新的内容。关于删除和重新插入的内容对我来说似乎是一种不好的做法,因此我想知道我是否遗漏了一些内容。

您应该使用
更新

UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;
更新记录时要小心。如果我们省略了WHERE子句(或犯了错误),您可以更新表中的所有记录,而不是您想要更新的记录


您可能希望删除并插入新记录的一个原因是为该记录提供一个新的主键(如果它是自动递增的)。您应该小心这样做,因为它会弄乱使用此主键的其他表中的任何外键

我在我的网站上遇到同样的问题,我的解决方案是在我填充隐藏输入或会话变量中的字段时获取表的ID,因此当某些内容发生更改时,我只通过提供存储的ID来更新数据库。希望有帮助。

您是否尝试过“更新”表?删除记录通常不是好的业务实践,即如果删除成功而插入失败,会发生什么情况?我认为您希望删除并插入新记录的唯一原因是为该顺序提供一个新的自动递增数字。但是,当所有正在编辑的数据都以一个大的形式出现在同一页上时(对于多个表)您如何根据用户更改的内容跟踪何时更新/插入/删除。@Mike请提供有关您的表、它们包含的数据以及它们之间的关系的详细信息。我不知道您当前的实现如何:“在我看来,处理这一问题的唯一方法是删除旧订单的所有记录,然后重新插入新的内容”地址“您如何跟踪…”。