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
14 lines
596 B
JSON
14 lines
596 B
JSON
{
|
|
"query": "SELECT COUNT(DISTINCT openId) as unique_openids, COUNT(*) as total_users FROM 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 SELECT COUNT(DISTINCT openId) as unique_openids, COUNT(*) as total_users FROM users",
|
|
"rows": [
|
|
{
|
|
"unique_openids": "1",
|
|
"total_users": "1"
|
|
}
|
|
],
|
|
"messages": [],
|
|
"stdout": "unique_openids\ttotal_users\n1\t1\n",
|
|
"stderr": "",
|
|
"execution_time_ms": 46
|
|
} |