我有一个显示为 html 表的 mysql 表。用户能够更新、插入和删除行。单击保存按钮后,我想更新我的 mysql 表。
我目前的方法是删除所有行并在保存时插入所有新行。但是,当我的插入功能出现错误并且我已经删除了所有内容时,我遇到了问题。
我觉得这种方法很草率,导致不必要的删除。它可能会删除并插入 50 行只是为了更新一个单元格。
在mysql中更新表的正确方法是什么?
编辑:我目前的工作解决方案是这个
向表中添加已删除的列,默认值为 0
为行中的每个单元格在表上创建唯一索引(ID 除外)
保存表时,更新每一行,设置deleted = 1
对于表中的每一行,插入到 mysql 中,重复集已删除 = 0
仅显示已删除 = 0 的行
您可以选择删除已删除 = 1 的行来清理它,但我喜欢将其保留为备份。
这个解决方案会出现两个问题:
不允许有两个相同的行。如果发现重复项,mysql 将仅替换 deleted = 0
如果一行中的一个单元格被更改,将创建一个新行并且不会简单地更新旧行。这可以修复,但我几乎不介意能够“撤消”编辑。