Maison > base de données > tutoriel mysql > Comment puis-je INSÉRER ou METTRE À JOUR efficacement une ligne de base de données en fonction de deux conditions ?

Comment puis-je INSÉRER ou METTRE À JOUR efficacement une ligne de base de données en fonction de deux conditions ?

Mary-Kate Olsen
Libérer: 2024-12-31 04:56:08
original
600 Les gens l'ont consulté

How Can I Efficiently INSERT INTO or UPDATE a Database Row Based on Two Conditions?

INSERT INTO ou UPDATE avec deux conditions : une solution efficace

La tâche d'insertion ou de mise à jour les lignes d'une base de données basées sur deux conditions peuvent être difficiles, en particulier lorsque l'on recherche une solution efficace. Ce problème est particulièrement répandu lorsqu'il s'agit de tables dans lesquelles de nouvelles lignes sont continuellement générées avec des noms et des dates en double.

La solution : INSERT INTO ON DUPLICATE KEY UPDATE

La solution optimale à ce problème est l'instruction INSERT INTO ON DUPLICATE KEY UPDATE. Cette instruction permet l'insertion d'une nouvelle ligne si elle n'existe pas déjà, et la mise à jour d'une ligne existante si elle existe. Pour utiliser cette instruction, la table doit avoir une clé unique (telle qu'une clé composite) pour détecter les conflits lors de l'opération d'insertion.

Exemple d'utilisation

Considérons un tableau avec le schéma suivant :

CREATE TABLE myThing (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name INT NOT NULL,
    values1 INT NOT NULL,
    values2 INT NOT NULL,
    dates DATE NOT NULL,
    UNIQUE KEY (name, dates) -- This unique key is crucial.
);
Copier après la connexion

Avec ceci configuration, l'instruction suivante insérera une nouvelle ligne si la combinaison nom et date n'existe pas, ou mettra à jour la ligne existante si c'est le cas :

INSERT INTO myThing (name, values1, values2, dates)
VALUES (777, 1, 1, '2015-07-11')
ON DUPLICATE KEY UPDATE values2=values2+1;
Copier après la connexion

Exemples de résultats

L'exécution de l'instruction insert plusieurs fois avec la même combinaison de nom et de date mettra à jour la colonne valeurs2, comme indiqué ci-dessous :

| id | name | values1 | values2 | dates      |
| --- | --- | --- | --- | --- |
| 1 | 777 | 1 | 4 | 2015-07-11 |
Copier après la connexion

Conclusion

L'instruction INSERT INTO ON DUPLICATE KEY UPDATE fournit une solution très efficace pour gérer les insertions et mises à jour basées sur plusieurs conditions. En définissant une clé unique, cette approche garantit que les entrées en double sont traitées de manière appropriée, éliminant ainsi le besoin de procédures stockées complexes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal