Mysql
 sql >> Base de données >  >> RDS >> Mysql

Requête par lots MySQL délicate

N'utilisez pas de colonnes à incrémentation automatique - pré-attribuez vos identifiants de référence avant l'insertion. De cette façon, vous pouvez utiliser une insertion en masse et supprimer la dépendance.

Mise à jour :

  1. Sélectionnez n'importe quel identifiant existant hors de la base de données (idéalement une seule sélection pour toutes les données connues).

  2. Enrichissez les données à insérer avec n'importe quel identifiant connu. (calculez une clé pour chaque élément, qui correspondrait à la clé primaire de votre table dans la base de données, utilisez-la pour mettre à jour l'élément avec l'identifiant de la base de données) - vous souhaitez finalement diviser les données en éléments que vous connaissez dans la base de données, et ont donc un identifiant connu - et des données qui n'existent pas dans la base de données, et nécessitent donc une allocation de clé. Je suppose que votre table a une clé primaire qui n'est pas seulement l'identifiant - sinon, comment la base de données saurait-elle que vous avez déjà les données dans la base de données.

  3. Attribuez de nouveaux identifiants à tous les enregistrements sans identifiant.

  4. remplacement en masse des données dans la base de données (insertion de plusieurs lignes avec une seule instruction).