1

私はフォームのmySQLテーブルを持っています

entryID (PK), UserID, entryName

各ユーザー (自分のユーザー ID で定義) は、このテーブルに任意の数のエントリを作成できますが、各ユーザーの entryName は一意である必要があります。ユーザーがすべての entryNames を一度に変更できるようにしたいと考えています。そのため、編集可能な複数の entryName フィールドを持つフォームをユーザーに提示します。

問題は、これをデータベースにコミットしようとするときです。場合によっては、行ごとに更新することはできません。

1, 1, Entry1
2, 1, Entry2

なり

1, 1, Entry2
2, 1, Entry3

Entry1 を Entry2 に名前変更しようとすると、エラーが発生します。現在、指定された UserID を持つすべての行を読み取り、それらを削除して、各行を再作成しています。これは機能します。ただし、この方法の問題点は、ユーザーがスクリプトでエラーを引き起こした場合、そのユーザーのすべてのエントリが削除されてしまい、失われてしまうことです。そして、これは悪いことです。これをどのように解決しますか?

4

1 に答える 1

2

これは、EXCEPTION での TRANSACTION WITH ROLLBACK の典型的なシナリオです。

ここから開始できます: http://dev.mysql.com/doc/refman/5.0/en/commit.html

于 2011-03-24T19:59:59.890 に答える