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

Langage SQL Discussion :

INSERT INTO avec autoincrement


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Janvier 2024
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Janvier 2024
    Messages : 159
    Par défaut INSERT INTO avec autoincrement
    Bonjour
    je voudrais ajouter une ligne dans ma table
    donc a priori "insert into `matable` values( v1,v2,v3)

    sauf que la première colonne est évidemment un Id auto incémenté que je ne connais pas.
    Qu'est-ce que je dois mettre dans mes values en premier argument?

    merci

  2. #2
    Membre averti
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Janvier 2024
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Janvier 2024
    Messages : 159
    Par défaut
    Je crois avoir deviné qu'il faut mettre NULL en lieu et place de la colonne Id.

  3. #3
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 494
    Par défaut
    Bonjour,
    Il ne faut tout simplement pas mettre la colonne en question dans la requête, le SGBD s'en occupe.

    Tatayo

  4. #4
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 694
    Billets dans le blog
    10
    Par défaut
    Citation Envoyé par noradan Voir le message
    Bonjour
    donc a priori "insert into `matable` values( v1,v2,v3)
    Non seulement il ne faut pas mentionner la colonne ayant la propriété "auto_increment" comme l'a justement mentionné Tatayo, mais en plus, il est préférable de citer le nom des autres colonnes, ça facilite la compréhension et donc la maintenance.

    Donc, pour une table T1 ayant les colonnes C1, C2, C3, C4 et C1 avec la propriété "auto_increment", l'ordre INSERT se code ainsi :
    INSERT into T1 (C2, C3, C4) values (V2, V3, V4).

  5. #5
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 494
    Par défaut
    escartefigue: tient, je n'avais pas fait gaffe à ça.
    Il n'était pas bien réveillé le tatayo
    D'ailleurs il me semble que si on récrée la table, mais en changeant l'ordre des colonnes, les données ne seront pas affectées aux bonnes colonnes.

    Tatayo

  6. #6
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 694
    Billets dans le blog
    10
    Par défaut
    Je confirme : c'est l'une des raisons pour lesquelles citer les colonnes est préférable, même s'il est très rare que l'ordre des colonnes change.
    Et également, ne pas citer les colonnes nécessite que le moteur du SGBD consulte le catalogue pour savoir ce qu'il en est, ce qui a un coût évidemment.

  7. #7
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 360
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 360
    Billets dans le blog
    17
    Par défaut
    Oui il vaut mieux spécifier le nom des colonnes, sauf l'ID autoincrémenté.

    MySQL supporte même la superbe INSERT..SET propriétaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    INSERT INTO ta_table
    SET
        col_1 = 'val_1',
        col_2 = 'val_2',
        col_3 = 'val_3'
    ;
    Bien plus lisible que le classique INSERT...VALUES :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO ta_table (col_1, col_2, col_3)
    VALUES ('val_1', 'val_2', 'val_3');
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

Discussions similaires

  1. insert into avec une date
    Par LeXo dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 13/11/2006, 23h08
  2. [Débutant] INSERT INTO avec VALUES + SELECT
    Par Feezdev dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 15/06/2006, 11h10
  3. INSERT INTO avec date (asp/access)
    Par ddeee dans le forum ASP
    Réponses: 2
    Dernier message: 30/03/2006, 14h07
  4. [MySQL] Php et INSERT INTO, avec variables
    Par Djwaves dans le forum PHP & Base de données
    Réponses: 24
    Dernier message: 20/02/2006, 14h53
  5. INSERT INTO avec une valeur numéroauto
    Par priest69 dans le forum Requêtes et SQL.
    Réponses: 12
    Dernier message: 08/11/2005, 16h39

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