我有一个表格
的mySQL表 entryID (PK), UserID, entryName
每个用户(由其userID定义)可以在此表中创建任意数量的条目,但对于每个用户,entryName必须是唯一的。我想允许用户一次修改所有的entryNames。因此,我将向用户显示一个表单,其中包含多个可以编辑的entryName字段。
问题在于尝试将其提交到数据库时。我不能像行一样逐行更新:
1, 1, Entry1
2, 1, Entry2
成为
1, 1, Entry2
2, 1, Entry3
尝试将Entry1重命名为Entry2时,会导致错误。目前,我使用给定的UserID读取所有行,然后删除它们,并重新创建每一行。这有效。但是,该方法的问题在于,如果用户设法在我的脚本中导致错误,则他的所有条目都将被删除...并丢失。这是一件坏事。如何解决这个问题?
答案 0 :(得分:2)
这是EXCEPTION上的TRANSACTION WITH ROLLBACK的典型场景。