J'ai besoin d'upadte, append et supprimer des lignes de la table auth.models.User, malheureusement …
quand je le fais, la table se verrouille et je ne peux pas effectuer de requêtes SELECT sur la table.
J'entoure ces requêtes par @transaction.commit_manually
, ce qui pourrait avoir quelque chose à voir avec le locking des tables.
La transaction ressemble à ceci:
for row in csv_reader: update_sql = "UPDATE auth_user SET last_name = '%s' WHERE username = '%s'" %(row[2], row[0] ) cursor.execute(update_sql) if not index % 100: print index: print index transaction.commit()
J'utilise aussi Sql Server 2008 , je voudrais savoir si c'est spécifique à Sql Server ou si de telles actions verrouilleraient aussi la table dans PostgreSQL et MySQL.
Des idées les gars? 🙂
Oui, vous verrouillez les tables express. Je proposerais d'étudier l' isolation des transactions car c'est l'un des concepts keys des bases de données.
En ce qui concerne votre problème, vous pouvez faire plusieurs choses, à la fois pour les instructions UPDATE et SELECT: