1

我有一个表格的 mySQL 表

entryID (PK), UserID, entryName

每个用户(由他的 userID 定义)可以在此表中创建任意数量的条目,但对于每个用户,entryName 必须是唯一的。我想允许用户一次修改他们所有的 entryNames。因此,我将向用户展示一个表单,其中包含他们可以编辑的多个 entryName 字段。

问题在于尝试将其提交到数据库时。我不能像这种情况那样逐行更新:

1, 1, Entry1
2, 1, Entry2

变得

1, 1, Entry2
2, 1, Entry3

尝试将 Entry1 重命名为 Entry2 时会导致错误。目前,我使用给定的 UserID 读取所有行,然后删除它们,并重新创建每一行。这行得通。然而,这种方法的问题在于,如果用户设法在我的脚本中造成错误,他的所有条目都会被删除......并丢失。这是一件坏事。如何解决这个问题?

4

1 回答 1

2

这是 TRANSACTION WITH ROLLBACK on EXCEPTION 的典型场景。

你可以从这里开始:http: //dev.mysql.com/doc/refman/5.0/en/commit.html

于 2011-03-24T19:59:59.890 回答