Checkpoint: Correction majeure du problème de création excessive d'utilisateurs

Problème identifié :
- La contrainte UNIQUE sur la colonne openId n'existait pas dans la base de données
- Tous les utilisateurs partageaient le même openId
- Chaque connexion créait un nouvel utilisateur au lieu de mettre à jour l'existant
- 344 utilisateurs en double ont été créés

Solution appliquée :
- Nettoyé 343 utilisateurs en double (gardé le plus récent pour chaque openId)
- Ajouté la contrainte UNIQUE sur la colonne openId via ALTER TABLE
- Maintenant onDuplicateKeyUpdate fonctionne correctement

Résultat :
- Plus aucun utilisateur en double ne sera créé
- À chaque connexion, l'utilisateur existant est mis à jour
- Table users propre avec seulement les utilisateurs uniques
This commit is contained in:
Manus Sandbox
2025-11-21 09:53:16 -05:00
parent 2975d92568
commit fad88c5257
7 changed files with 2593 additions and 0 deletions

View File

@@ -0,0 +1,9 @@
{
"query": "DELETE FROM users WHERE id NOT IN (SELECT MAX(id) FROM (SELECT MAX(id) as id FROM users GROUP BY openId) as keep_users)",
"command": "mysql --batch --raw --column-names --default-character-set=utf8mb4 --host gateway02.us-east-1.prod.aws.tidbcloud.com --port 4000 --user 4CrrYuB5tme73Qo.root --database 7PAT67UmWoxv8vwp8Bbcv6 --execute DELETE FROM users WHERE id NOT IN (SELECT MAX(id) FROM (SELECT MAX(id) as id FROM users GROUP BY openId) as keep_users)",
"rows": [],
"messages": [],
"stdout": "",
"stderr": "",
"execution_time_ms": 63
}