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
90 lines
3.1 KiB
JSON
90 lines
3.1 KiB
JSON
{
|
|
"query": "SELECT id, openId, name, email, role, createdAt FROM users WHERE name = 'N/A' OR name IS NULL LIMIT 10",
|
|
"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 id, openId, name, email, role, createdAt FROM users WHERE name = 'N/A' OR name IS NULL LIMIT 10",
|
|
"rows": [
|
|
{
|
|
"id": "2400147",
|
|
"openId": "PdkqbRJkpFYtceh4p8f3Wh",
|
|
"name": "NULL",
|
|
"email": "NULL",
|
|
"role": "user",
|
|
"createdAt": "2025-11-19 17:37:51"
|
|
},
|
|
{
|
|
"id": "2400149",
|
|
"openId": "PdkqbRJkpFYtceh4p8f3Wh",
|
|
"name": "NULL",
|
|
"email": "NULL",
|
|
"role": "user",
|
|
"createdAt": "2025-11-19 17:38:00"
|
|
},
|
|
{
|
|
"id": "2400150",
|
|
"openId": "PdkqbRJkpFYtceh4p8f3Wh",
|
|
"name": "NULL",
|
|
"email": "NULL",
|
|
"role": "user",
|
|
"createdAt": "2025-11-19 17:38:00"
|
|
},
|
|
{
|
|
"id": "2400151",
|
|
"openId": "PdkqbRJkpFYtceh4p8f3Wh",
|
|
"name": "NULL",
|
|
"email": "NULL",
|
|
"role": "user",
|
|
"createdAt": "2025-11-19 17:38:04"
|
|
},
|
|
{
|
|
"id": "2400152",
|
|
"openId": "PdkqbRJkpFYtceh4p8f3Wh",
|
|
"name": "NULL",
|
|
"email": "NULL",
|
|
"role": "user",
|
|
"createdAt": "2025-11-19 17:38:04"
|
|
},
|
|
{
|
|
"id": "2400153",
|
|
"openId": "PdkqbRJkpFYtceh4p8f3Wh",
|
|
"name": "NULL",
|
|
"email": "NULL",
|
|
"role": "user",
|
|
"createdAt": "2025-11-19 17:38:13"
|
|
},
|
|
{
|
|
"id": "2400154",
|
|
"openId": "PdkqbRJkpFYtceh4p8f3Wh",
|
|
"name": "NULL",
|
|
"email": "NULL",
|
|
"role": "user",
|
|
"createdAt": "2025-11-19 17:38:13"
|
|
},
|
|
{
|
|
"id": "2400155",
|
|
"openId": "PdkqbRJkpFYtceh4p8f3Wh",
|
|
"name": "NULL",
|
|
"email": "NULL",
|
|
"role": "user",
|
|
"createdAt": "2025-11-19 17:38:32"
|
|
},
|
|
{
|
|
"id": "2400156",
|
|
"openId": "PdkqbRJkpFYtceh4p8f3Wh",
|
|
"name": "NULL",
|
|
"email": "NULL",
|
|
"role": "admin",
|
|
"createdAt": "2025-11-19 17:38:36"
|
|
},
|
|
{
|
|
"id": "2400157",
|
|
"openId": "PdkqbRJkpFYtceh4p8f3Wh",
|
|
"name": "NULL",
|
|
"email": "NULL",
|
|
"role": "admin",
|
|
"createdAt": "2025-11-19 17:39:45"
|
|
}
|
|
],
|
|
"messages": [],
|
|
"stdout": "id\topenId\tname\temail\trole\tcreatedAt\n2400147\tPdkqbRJkpFYtceh4p8f3Wh\tNULL\tNULL\tuser\t2025-11-19 17:37:51\n2400149\tPdkqbRJkpFYtceh4p8f3Wh\tNULL\tNULL\tuser\t2025-11-19 17:38:00\n2400150\tPdkqbRJkpFYtceh4p8f3Wh\tNULL\tNULL\tuser\t2025-11-19 17:38:00\n2400151\tPdkqbRJkpFYtceh4p8f3Wh\tNULL\tNULL\tuser\t2025-11-19 17:38:04\n2400152\tPdkqbRJkpFYtceh4p8f3Wh\tNULL\tNULL\tuser\t2025-11-19 17:38:04\n2400153\tPdkqbRJkpFYtceh4p8f3Wh\tNULL\tNULL\tuser\t2025-11-19 17:38:13\n2400154\tPdkqbRJkpFYtceh4p8f3Wh\tNULL\tNULL\tuser\t2025-11-19 17:38:13\n2400155\tPdkqbRJkpFYtceh4p8f3Wh\tNULL\tNULL\tuser\t2025-11-19 17:38:32\n2400156\tPdkqbRJkpFYtceh4p8f3Wh\tNULL\tNULL\tadmin\t2025-11-19 17:38:36\n2400157\tPdkqbRJkpFYtceh4p8f3Wh\tNULL\tNULL\tadmin\t2025-11-19 17:39:45\n",
|
|
"stderr": "",
|
|
"execution_time_ms": 111
|
|
} |