【发布时间】:2016-08-21 02:48:50
【问题描述】:
我有一个显示为 html 表的 mysql 表。用户能够更新、插入和删除行。单击保存按钮后,我想更新我的 mysql 表。
我目前的方法是删除所有行并在保存时插入所有新行。但是,当我的插入功能出现错误并且我已经删除了所有内容时,我遇到了问题。
我觉得这种方法很草率,导致不必要的删除。它可能会为了更新一个单元格而删除和插入 50 行。
在mysql中更新表的正确方法是什么?
编辑: 我目前的工作解决方案是这样的
向表中添加一个已删除的列,默认值为0
在表格上为行中的每个单元格创建唯一索引(ID 除外)
保存表时,更新每一行,设置deleted = 1
对于表中的每一行,插入 mysql,重复集删除 = 0
仅显示已删除 = 0 的行
您可以选择删除已删除 = 1 的行来清理它,但我喜欢将其保留为备份。
这个解决方案有两个问题:
不允许有两个相同的行。如果发现重复项,mysql 只会替换 deleted = 0
如果一行中的一个单元格被更改,将创建一个新行,而不会简单地更新旧行。这可以修复,但我几乎不介意能够“撤消”编辑。
【问题讨论】:
-
SO 不是一个请代码的网站。请发布您尝试过的,有效的,无效的。
-
我明白了。我正在寻找理论答案而不是代码,因为我假设这个问题很常见。
-
好的,很抱歉反应过度。我明白了。