IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

A propos de INSERT IGNORE INTO


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 35
    Par défaut A propos de INSERT IGNORE INTO
    Bonjour à tous ,

    Toujours dans le cadre du développement d'une application Web, je suis maintenant du côté back office...
    Je permets donc aux futurs administrateurs d'ajouter des nouveaux utilisateurs dans la base de données. Pour éviter (surtout pour le début) que les formulaires mis en place soient trop fastidieux, je permets l'upload d'un fichier .csv pour qu'ils puissent ajouter directement toute une liste d'utilisateurs...

    Ma table utilisateurs a un id_utilisateur qui est auto incrémenté, et le champ "login" est unique. Je voudrais éviter que si un des utilisateurs rajoute un fichier csv et que certaines lignes existent déjà, que l'application envoie une erreur brutale. Pour ça lorsque je fais l'ajout dans la base, je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT IGNORE INTO utilisateurs , etc...
    Ce système fonctionne à merveille, mais il y a un petit couac.
    Je m'explique :

    Admettons que la base contiennent 3 utilisateurs (que j'ai ajouté avec le fichier csv au préalable par exemple). Je réedite maintenant le fichier csv et je rajoute trois personnes. L'ajout fonctionne très bien, et sans doublons, seulement j'aurais ce résultat :

    Id nom
    1 Bernard
    2 Joakim
    3 Jean
    7 Bertrand
    8 Nicolas
    9 Anémone

    En clair, même si il IGNORE les lignes doubles, l'auto incrémentation est toujours active....Y'a t'il une solution pour éviter qu'il auto incrémente lorsque le champ est "ignoré" ?

    Je suis sous MySQL avec PHP

    Merci d'avance !

    Cordialement,

    MoKeS

  2. #2
    Membre Expert Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Par défaut
    Pourquoi ne pas tester l'existence de vos données dans la base avant l'insertion ?

    Sinon, cela est plus du ressort du forum MySQL que du SQL

    Bon courage

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 35
    Par défaut
    Je ne fais pas ce test parce que ça me force à faire une requete et une vérification en plus, et j'essaie d'en faire le moins possible....

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Août 2008
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 861
    Par défaut
    Pas besoin d'une requête 'en plus', un NOT EXISTS dans votre requête d'insertion pourrait convenir.

Discussions similaires

  1. Équivalent de "INSERT IGNORE"
    Par kirsoul dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 23/08/2010, 18h14
  2. DB2 INSERT IGNORE
    Par pcouas dans le forum DB2
    Réponses: 6
    Dernier message: 23/06/2010, 07h27
  3. Insert Ignore Into !
    Par The_Lord_09 dans le forum Requêtes
    Réponses: 3
    Dernier message: 19/06/2010, 19h12
  4. A propos du Insert
    Par pierre24 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 16/10/2008, 13h25
  5. Bulk insert ignorant des lignes
    Par elvivo dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 03/09/2006, 03h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo