11
votes

Insérer dans une table MySQL et écraser toutes les données actuelles

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?


0 commentaires

5 Réponses :


0
votes

Vous pouvez utiliser Remplacer Déclaration au lieu de Insert . Regardez http://dev.mysql.com/doc/refman/5.1 /en/replace.html


0 commentaires

5
votes

Vous pouvez utiliser Remplacer dans MySQL pour le faire .

REPLACE INTO table
SET name = 'Treffynnon'


1 commentaires

J'aime la promotion de soi sans vergogne.



1
votes

Recherchez "sur la mise à jour de la clé en double".

http://dev.mysql.com/ DOC / REFMAN / 5.0 / FR / INSERT-ON-DUPLIDE.HTML


0 commentaires

4
votes

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'


1 commentaires

Définir le champ = Valeurs (champ) 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.



23
votes

juste une petite feuille de chiche.
MySQL a 3 scénarios différents pour la manipulation des doublons clés uniques:

Si vous voulez ...


1 commentaires

Quelle est la différence entre remplacer dans et sur la mise à jour dupliquer ? Il semble qu'ils ont les mêmes résultats.