2011-03-24 5 views
1

J'ai une table mySQL de la formechangement atomiquement plusieurs lignes dans mySQL

entryID (PK), UserID, entryName

Chaque utilisateur (tel que défini par son code d'utilisateur) peut créer un nombre d'entrées dans ce tableau, mais pour chaque utilisateur, le nom d'entrée doit être unique. Je voudrais permettre aux utilisateurs de modifier tous leurs entryNames à la fois. En tant que tel, je vais présenter à l'utilisateur un formulaire avec plusieurs champs entryName qu'ils peuvent modifier.

Le problème est lors de la tentative de validation de la base de données. Je ne peux pas simplement mettre à jour ligne par ligne selon le cas:

1, 1, Entry1 
2, 1, Entry2 

devenir

1, 1, Entry2 
2, 1, Entry3 

provoquerait une erreur lors d'une tentative de renommer Entrée1 à inscription2. Actuellement, je lis toutes les lignes avec l'ID utilisateur donné, puis les supprime et recréer chaque ligne. Cela marche. Le problème avec cette méthode, cependant, est que si un utilisateur parvient à provoquer une erreur dans mon script, TOUTES ses entrées sont supprimées ... et perdues. Et c'est une mauvaise chose. Comment pourrait-on résoudre cela?

Répondre