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

Administration MySQL Discussion :

Problème d'un rajout d'une colonne dans une table


Sujet :

Administration MySQL

  1. #1
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2005
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 123
    Points : 107
    Points
    107
    Par défaut Problème d'un rajout d'une colonne dans une table
    Avec wampserveur:
    Version php : 5.6.15
    Version apache : 2.4.17
    Version mysql : 5.7.9
    phpmyadmin : 4.5.1

    -----------------------
    Bonjour tout le monde,

    Je suis re-débutant (on va dire 6 à 7 ans d'absence), donc je vous demanderai d'être indulgent.

    Avec phpmyadmin, je souhaite rajouter un colonne dans ma table, une colonne qui va contenir des dates. Mais à la création voici l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #1292 - Incorrect date value: '0000-00-00' for column 'Toutes_dates' at row 1
    Je comprends pas cette erreur. Pourriez-vous me donner des pistes ?

    Merci d'avance
    -------------
    - Apache serveur 2.4.5.4
    - Php 8.2.16
    - 5.5.57-MariaDB / 10.7.3-MariaDB
    - Qnap serveur TS-473

  2. #2
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 379
    Points : 19 060
    Points
    19 060
    Par défaut
    Salut gesualda.

    Sans la requête, il est assez difficile de deviner ce que vous avez fait.

    Mais d'après ce que je voie dans votre message d'erreur, MySql, dans sa version 5.7.9 n'accepte pas des dates à zéro.
    Vous devez mettre un 'NULL' à la place et gérer en conséquence cette particularité.

    Avez-vous précisé le paramétrage suivant, dans votre fichier 'my.ini' :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    # ------------------- #
    #     Date & Time     #
    # ------------------- #
     
    date-format       = "%Y-%m-%d"
    datetime-format   = "%Y-%m-%d %H:%i:%s"
     
    default-time-zone = SYSTEM
     
    explicit-defaults-for-timestamp = on
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  3. #3
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2005
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 123
    Points : 107
    Points
    107
    Par défaut
    Bonjour Artemus.

    En fait, je pense à un bug. En effet, j'ai sauvegardé la table existante. Je l'ai ensuite supprimé. Recréée une nouvelle TBL avec le fichier de sauvegarde et à ce moment j'ai pu rajouter cette colonne sans problème.

    Bizarre, bizarre.

    Merci pour le commentaire
    -------------
    - Apache serveur 2.4.5.4
    - Php 8.2.16
    - 5.5.57-MariaDB / 10.7.3-MariaDB
    - Qnap serveur TS-473

  4. #4
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 379
    Points : 19 060
    Points
    19 060
    Par défaut
    Salut gesualda.

    Comme vous, j'ai la même version. Et je vous assure que ce n'est pas un bug mais bien d'une restriction de la part de la version mysql 5.7.9.
    Voici un test qui le prouve :
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    --------------
    SET AUTOCOMMIT = 0
    --------------
     
    --------------
    START TRANSACTION
    --------------
     
    --------------
    DROP DATABASE IF EXISTS `base`
    --------------
     
    --------------
    CREATE DATABASE `base`
            DEFAULT CHARACTER SET `latin1`
            DEFAULT COLLATE       `latin1_general_ci`
    --------------
     
    --------------
    DROP TABLE IF EXISTS `test`
    --------------
     
    --------------
    CREATE TABLE `test`
    (
      `id`       integer unsigned NOT NULL AUTO_INCREMENT,
      `date`     date             NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB
      DEFAULT CHARSET=`latin1` COLLATE=`latin1_general_ci`
      ROW_FORMAT=COMPRESSED
    --------------
     
    --------------
    INSERT INTO test (`date`) VALUES
    ('2015-10-20'),
    ('2010-12-10')
    --------------
     
    --------------
    commit
    --------------
     
    --------------
    INSERT INTO test (`date`) VALUES
    ('0000-00-00')
    --------------
     
    ERROR 1292 (22007) at line 41: Incorrect date value: '0000-00-00' for column 'date' at row 1
    --------------
    commit
    --------------
     
    --------------
    SELECT @@GLOBAL.sql_mode
    --------------
     
    +-------------------------------------------------------------------------------------------------------------------------------------------+
    | @@GLOBAL.sql_mode                                                                                                                         |
    +-------------------------------------------------------------------------------------------------------------------------------------------+
    | ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
    +-------------------------------------------------------------------------------------------------------------------------------------------+
    --------------
    SELECT @@SESSION.sql_mode
    --------------
     
    +-------------------------------------------------------------------------------------------------------------------------------------------+
    | @@SESSION.sql_mode                                                                                                                        |
    +-------------------------------------------------------------------------------------------------------------------------------------------+
    | ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
    +-------------------------------------------------------------------------------------------------------------------------------------------+
    --------------
    SET session sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
    --------------
     
    --------------
    INSERT INTO test (`date`) VALUES
    ('0000-00-00')
    --------------
     
    --------------
    commit
    --------------
     
    --------------
    select * from test
    --------------
     
    +----+------------+
    | id | date       |
    +----+------------+
    |  1 | 2015-10-20 |
    |  2 | 2010-12-10 |
    |  3 | 0000-00-00 |
    +----+------------+
    --------------
    COMMIT
    --------------
     
    --------------
    SET AUTOCOMMIT = 1
    --------------
     
     
    Appuyez sur une touche pour continuer...
    Voici un lien qui explique les restrictions sur les dates à zéro.

    Si vous désirez saisir des dates à zéro, soit vous mettez :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SET SESSION sql_mode = ''
    ou bien vous supprimez comme je l'ai fait dans mon exemple les deux restrictions :
    --> NO_ZERO_IN_DATE
    --> NO_ZERO_DATE
    en mettant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SET session sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
    Une autre solution est de mettre 'NULL' lorsque votre date est à zéro.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  5. #5
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2005
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 123
    Points : 107
    Points
    107
    Par défaut
    Et ben la , merci beaucoup, je vais tenir compte de toutes ces informations pour mes futurs travaux de création de base.
    Merci encore pour ces explications.

    A bientot
    -------------
    - Apache serveur 2.4.5.4
    - Php 8.2.16
    - 5.5.57-MariaDB / 10.7.3-MariaDB
    - Qnap serveur TS-473

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 28/11/2011, 11h40
  2. Réponses: 1
    Dernier message: 21/01/2011, 10h17
  3. Réponses: 8
    Dernier message: 15/06/2010, 16h50
  4. [E-00] Syntaxe pour insérer une ligne ou une colonne dans une feuille
    Par Benjycool dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/02/2009, 09h27
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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