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 :

Identifiant auto-incrémenté qui reste à 0


Sujet :

Requêtes MySQL

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2019
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Identifiant auto-incrémenté qui reste à 0
    Bonjour, je suis débutant en développement web, j'ai créé une base de donnée sur MYSQL avec deux tables. le soucis est que lorsque j'enregistre des données dans une table l'identifiant reste 0 or j'ai coché auto_incrémente. Aidez moi SVP.

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 134
    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 134
    Points : 38 557
    Points
    38 557
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    Faute de boule de cristal en état de fonctionner, merci de communiquer le script de création de vos tables ainsi que la requête en question

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2019
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Requête de création de table
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    create TABLE `categories` (
      `id` int(20) NOT NULL,
      `created_at` datetime NOT NULL,
      `updated_at` datetime NOT NULL,
      `code` text,
      `name` text,
      `name_en` text,
      `name_fr` text,
      `fk_parent_category` bigint(20) DEFAULT NULL
    ) 
     
    --
    -insert data for table `categories`
    --
    INSERT INTO `categories` ( `created_at`, `updated_at`, `code`, `name`, `name_en`, `name_fr`, `fk_parent_category`) VALUES
    ( '2019-01-07 17:34:57', '2019-01-07 17:34:57', NULL, NULL, 'Title Ii - Tax Recovery', 'Titre II - Le recouvrement de l\'impot', 14),
    ( '2019-01-07 17:34:57', '2019-01-07 17:34:57', NULL, NULL, 'Title II - Tax Recovery', 'Titre II - Le recouvrement de l\'impot', 1613),
    ( '2019-01-07 17:34:57', '2019-01-07 17:34:57', NULL, NULL, 'Title II - Tax Recovery', 'Titre II - Le recouvrement de l\'impot', 1623);

  4. #4
    Membre averti
    Profil pro
    Administrateur
    Inscrit en
    Mai 2008
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2008
    Messages : 237
    Points : 433
    Points
    433
    Par défaut
    Votre table ne dispose pas de colonne auto_increment
    Bien choisir les types de colonnes appropriés.
    Exemple : assignez le type varchar sur code, name, name_en, name_fr tout en spécifiant la taille maximale de caractères.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    create TABLE categories (
    id bigint auto_increment primary key,
    created_at datetime NOT NULL,
    updated_at datetime NOT NULL,
    code varchar(50),
    name varchar(100),
    name_en varchar(100),
    name_fr varchar(100),
    fk_parent_category bigint DEFAULT NULL
    );
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO categories ( created_at, updated_at, code, name, name_en, name_fr, fk_parent_category) VALUES
    ( '2019-01-07 17:34:57', '2019-01-07 17:34:57', NULL, NULL, 'Title Ii - Tax Recovery', 'Titre II - Le recouvrement de l\'impot', 14),
    ( '2019-01-07 17:34:57', '2019-01-07 17:34:57', NULL, NULL, 'Title II - Tax Recovery', 'Titre II - Le recouvrement de l\'impot', 1613),
    ( '2019-01-07 17:34:57', '2019-01-07 17:34:57', NULL, NULL, 'Title II - Tax Recovery', 'Titre II - Le recouvrement de l\'impot', 1623);

  5. #5
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 134
    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 134
    Points : 38 557
    Points
    38 557
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par manzeki Voir le message
    Bien choisir les types de colonnes appropriés.
    Exemple : assignez le type varchar sur code
    En l'occurrence, du varchar pour un code est rarement un bon choix : les codes étant le plus souvent de longueur maximale très courte et souvent tous de la même longueur, choisir du varchar est contre-performant, le char est préférable.

    Exemples :
    - codes pays iso 3166 : 3 normes char(2), char(3) et numérique(3) cf. https://fr.wikipedia.org/wiki/ISO_3166
    - codes devises iso 4217 : char(3) cf. https://fr.wikipedia.org/wiki/ISO_4217
    - codes incoterm de port : char(3) cf. https://fr.wikipedia.org/wiki/Incoterm
    - codes communes insee : char(5) cf. https://public.opendatasoft.com/expl.../table/?flg=fr
    etc

    Pour rappel
    - le varchar nécessite, selon les SGBD et la longueur maximale de l'attribut, 1 à 3 octets supplémentaires pour stocker la longueur effective, au contraire du char.
    - le varchar provoque des déplacement de pages data et index lors des mises à jour avec modification de la longueur, ce qui pénalise les performances
    - le varchar requiert un réalignement avant tri (order by, distinct, group by) ce qui pénalise aussi les performances

    Donc le varchar, c'est très bien, mais il ne faut pas l'utiliser systématiquement au détriment du char
    - attribut de longueur maximale réduite (moins de 20 caractères ~) ou dont la longueur effective ne varie pas ou très peu ==> préférer le char, quelques blancs inutiles coutent moins cher que des déplacements de pages data et index
    - attribut de longueur maximale significative et dont la longueur varie fortement d'une ligne à l'autre ==> préférer le varchar

    Pour le reste je suis d'accord

Discussions similaires

  1. [MPD] Identifiant auto incrémenté
    Par MacFly58 dans le forum Schéma
    Réponses: 9
    Dernier message: 19/12/2012, 22h54
  2. Réponses: 21
    Dernier message: 28/06/2010, 08h40
  3. [AC-2003] Auto-incrémentation qui change de repère
    Par talondachil dans le forum Modélisation
    Réponses: 6
    Dernier message: 28/04/2009, 05h04
  4. Théorie: Identifiants auto-incrémentés
    Par blapointe dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 24/08/2006, 20h27
  5. Réponses: 8
    Dernier message: 08/06/2006, 11h20

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