J'ai deux tables MYSQL cases
et pivot
INSERT MYSQL, UPDATE SUPPRIMER
cases
ressemble à ceci:
Idgame Id
1 2
1 1
1 5
1 3
1 1
1 6
... ...
1 2
pivot
ressemble à ceci:
Idgame Id Icone
1 1 7
1 2 14
1 3 15
1 5 6
1 6 1
Tout Id dans pivot
doit être l'identifiant distinct de cases
Les utilisateurs peuvent modifier l'ID dans cases
, donc quand il y a un changement que je veux mettre à jour pivot
.
1) S'il y a un nouvel identifiant pas encore pivot
Je veux ajouter une nouvelle ligne à pivot
avec Icone = 1 (je mets 1 comme valeur par défaut)
2) Si une pièce d'identité ne sont plus dans cases
Je veux les supprimer dans pivot
3) Je ne change rien dans pivot
si l'identifiant est toujours en cases
Je suis en train de le faire avec REPLACE INTO ou INSERT Duplicate KEY mais je n'arrive pas à le faire ...
J'ai essayé quelque chose comme ci-dessous. Il fonctionne presque mais il n'effectue pas de suppression (point 2): J'ai ajouté PRIMARY KEY sur les 3 colonnes (id, idgame et icone) dans pivot
.
REPLACE INTO `pivot` (id,idgame,icone)
SELECT DISTINCT cases.id, cases.idgame, pivot.icone
FROM `cases`
LEFT JOIN pivot ON (pivot.Idgame = cases.Idgame AND pivot.id = cases.id)
WHERE cases.Idgame = 1
Est-il possible de le faire avec une seule requête?