J'insère des données dans une table, mais elle s'affronte parfois avec d'autres données dans le tableau (c'est-à-dire qu'il a la même clé primaire).
J'aimerais pouvoir simplement écraser ces données s'il est là, au lieu d'avoir MySQL m'envoyer un message d'erreur indiquant qu'il existe une clé primaire en double. Je sais que je peux simplement supprimer ces valeurs à l'avance, mais cela prendrait une requête quelque peu grande.
Est-il possible d'écraser ces valeurs et de supprimer les avertissements, ou je suis obligé de supprimer ces valeurs? P>
5 Réponses :
Vous pouvez utiliser Remplacer forte> Déclaration au lieu de Insert Fort>. Regardez http://dev.mysql.com/doc/refman/5.1 /en/replace.html p>
Vous pouvez utiliser Remplacer dans MySQL pour le faire .
REPLACE INTO table SET name = 'Treffynnon'
J'aime la promotion de soi sans vergogne.
Recherchez "sur la mise à jour de la clé en double". p>
http://dev.mysql.com/ DOC / REFMAN / 5.0 / FR / INSERT-ON-DUPLIDE.HTML P>
mySQL a une commande "insert ... sur la commande de mise à jour de la clé en double". Vous pouvez le trouver ici: http: //dev.mysql .COM / DOC / REFMAN / 5.0 / FR / INSERT-ON-DUPLIDE.HTML
INSERT INTO `table` VALUES ('a', 'b') ON DUPLICATE KEY UPDATE `field1`='a', `field2`='b'
Définir le champ = Valeurs (champ) code> est une meilleure option - vous permet d'utiliser vos données deux fois dans la requête. La fonction Valeurs () l'extraire de la partie Insertion de l'instruction pour vous, de sorte que vos données ne vont que dans la chaîne de requête une fois.
juste une petite feuille de chiche.
MySQL a 3 scénarios différents pour la manipulation des doublons clés uniques: P>
Si vous voulez ... p>
insérer Ignore code> li>
- Supprimer existant et créer de nouvelles - utilisez
Remplacer dans Code> li>
- Mise à jour existante - Utilisez
sur la mise à jour dupliquer code> li>
ul>
Quelle est la différence entre remplacer dans code> et sur la mise à jour dupliquer code>? Il semble qu'ils ont les mêmes résultats.