J'ai table contient des questions de données. De plus, chaque question a un identifiant de test, un identifiant de document (dokuman_id), un ordre (sira) et des données vidéo. Je souhaite créer une requête qui insère une nouvelle ligne s’il n’existe pas "une ligne ayant les mêmes ID de test, ID de document et ordre; sinon, il suffit de mettre à jour le champ vidéo.
Je sais que je pourrais utiliser ON DUPLICATE KEY si je veux le faire avec la colonne id (primart_key). Mais je dois contrôler 3 conditions de colonne en double aussi optimales que possible.
Réponses:
1 pour la réponse № 1vous devriez créer un index sur test_id , dokuman_id , sira
INSERT INTO table (test_id , dokuman_id , sira , video)
VALUES(:test_id , :dokuman_id , :sira , :video)
ON DUPLICATE KEY UPDATE video = :video