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 :

Pb procédure stockée création de table


Sujet :

Administration MySQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 19
    Points : 10
    Points
    10
    Par défaut Pb procédure stockée création de table
    Bonjour,

    Je débute en Mysql et je sollicite votre aide.
    J'utilise Mysql 5.1.36 sous windows.
    J'ai une procédure stockée pour la création d'une table avec le code ci-dessous.
    La 3em ligne demande la création d'un champ avec autorisation de valeur NULL, par contre elle est tout de même crée avec un champ NOT NULL?
    Cette procédure à été modifiée, avant le champ était demandé NOT NULL, j'ai donc l'impression que la modification est visible mais pas effective.
    Merci pour votre avis.

    Thierry.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE PROCEDURE gidh.`createHisto`(Valeur varchar (64))
    BEGIN
     
    	 SET @requete = CONCAT('CREATE TABLE ', Valeur);
    	 SET @requete = CONCAT(@requete, '(`Dat` date NOT NULL DEFAULT ''0000-00-00'' COMMENT ''Date réception '',');
            SET @requete = CONCAT(@requete,'`Tim` time NOT NULL DEFAULT ''00:00:00'' COMMENT ''Heure réception'',');
    	 SET @requete = CONCAT(@requete,'`DatI` date NULL DEFAULT ''0000-00-00'' COMMENT ''Date incinération '',');
            SET @requete = CONCAT(@requete,'`TimI` time NULL DEFAULT ''00:00:00'' COMMENT ''Heure incinération'',');

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 281
    Points : 11 737
    Points
    11 737
    Par défaut
    il ne manquerait pas la fin de ta proc ?
    Antoun
    Expert Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 19
    Points : 10
    Points
    10
    Par défaut
    Voici la proc complète qui s'exécute mais lors de la création de la table le champ DatI n'est pas conforme à ce qui est demandé soit NULL et non NOT NULL.

    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
     
    CREATE PROCEDURE gidh.`createHisto`(Valeur varchar (64))
    BEGIN
     
    	 SET @requete = CONCAT('CREATE TABLE ', Valeur);
    	 SET @requete = CONCAT(@requete, '(`Dat` date NOT NULL DEFAULT ''0000-00-00'' COMMENT ''Date réception '',');
            SET @requete = CONCAT(@requete,'`Tim` time NOT NULL DEFAULT ''00:00:00'' COMMENT ''Heure réception'',');
    	 SET @requete = CONCAT(@requete,'`DatI` date NULL DEFAULT ''0000-00-00'' COMMENT ''Date incinération '',');
           SET @requete = CONCAT(@requete,'`TimI` time NULL DEFAULT ''00:00:00'' COMMENT ''Heure incinération'',');
             SET @requete = CONCAT(@requete,'`Bsdi` varchar(10) DEFAULT NULL COMMENT ''Nr de BSDI'',');
    	 SET @requete = CONCAT(@requete,'`CBar` varchar(10) NULL DEFAULT '''' COMMENT ''Code barre client'',');
    	 SET @requete = CONCAT(@requete,'`NrBac` varchar(6) NULL COMMENT ''Numéro de chariot'',');
    	 SET @requete = CONCAT(@requete,'`PoiB` float DEFAULT NULL COMMENT ''Poids brut bac '',');
    	 SET @requete = CONCAT(@requete,'`PoiT` float DEFAULT NULL COMMENT ''Poids tare bac '',');
    	 SET @requete = CONCAT(@requete,'`Dsd` int(11) DEFAULT NULL COMMENT ''Numéro pesée unique DSD'',');
    	 SET @requete = CONCAT(@requete,'`NrPes` smallint(6) DEFAULT NULL COMMENT ''Numéro de poste de pesage '',');
    	 SET @requete = CONCAT(@requete,'`NbrPal` smallint(6) DEFAULT NULL COMMENT ''Nombre de palette si camion '',');
    	 SET @requete = CONCAT(@requete,'`NomP` varchar(50) DEFAULT NULL COMMENT ''Nom producteur'',');
    	 SET @requete = CONCAT(@requete,'`NomPRec` varchar(50) DEFAULT NULL COMMENT ''Nom producteur réception'',');
    	 SET @requete = CONCAT(@requete,'`NomT` varchar(50) DEFAULT NULL COMMENT ''Nom collecteur'',');
    	 SET @requete = CONCAT(@requete,'`DatElv` date NULL DEFAULT ''0000-00-00'' COMMENT ''Date départ sur chaine '',');
    	 SET @requete = CONCAT(@requete,'`TimElv` time NULL DEFAULT ''00:00:00'' COMMENT ''Heure départ sur chaine'',');
    	 SET @requete = CONCAT(@requete,'`DatLav` date NULL DEFAULT ''0000-00-00'' COMMENT ''Date de lavage'',');
    	 SET @requete = CONCAT(@requete,'`TimLav` time NULL DEFAULT ''00:00:00'' COMMENT ''Heure de lavage'',');
    	 SET @requete = CONCAT(@requete,'`DatExp` date NULL DEFAULT ''0000-00-00'' COMMENT ''Date expédition '',');
    	 SET @requete = CONCAT(@requete,'`TimExp` time NULL DEFAULT ''00:00:00'' COMMENT ''Heure expédition'',');
             SET @requete = CONCAT(@requete,'`Rema` varchar(2) DEFAULT NULL COMMENT ''Remarque A,M,PA'',');
    	 SET @requete = CONCAT(@requete,'`RemaInc` varchar(2) DEFAULT NULL COMMENT ''Remarque incinération A,M,S'',');
    	 SET @requete = CONCAT(@requete,'`CoPoProd` varchar(5) DEFAULT NULL COMMENT ''Code postal producteur'',');
    	 SET @requete = CONCAT(@requete,'`CoPoCol` varchar(5) DEFAULT NULL COMMENT ''Code Postal colecteur'',');
    	 SET @requete = CONCAT(@requete,'`TpFour` smallint(6) DEFAULT NULL COMMENT ''Température du four '',');
    	 SET @requete = CONCAT(@requete,'`CodtProprio` varchar(4) DEFAULT NULL COMMENT ''Propriètaire du bac'',');
    	 SET @requete = CONCAT(@requete,' PRIMARY KEY (`Dat`,`Tim`,`DatI`,`TimI`,`CBar`,`NrBac`)');
    	 SET @requete = CONCAT(@requete,' ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT=''Table Histo Mois x''');
     
        PREPARE stmt1 FROM @requete; 
        EXECUTE stmt1; 
        DEALLOCATE PREPARE stmt1;
     
    END;

Discussions similaires

  1. Procédure stockées création dates de l'année
    Par brasco06 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 14/08/2009, 11h33
  2. [D7] Afficher les valeurs d'une procédure stockée dans une table
    Par babacan dans le forum Bases de données
    Réponses: 1
    Dernier message: 22/06/2009, 08h10
  3. Procédure de création de table
    Par Shiva dans le forum Langage SQL
    Réponses: 4
    Dernier message: 30/10/2007, 18h51
  4. Faire une procédure stockée avec deux tables
    Par mister3957 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 17/03/2006, 13h54
  5. Réponses: 2
    Dernier message: 15/09/2004, 18h17

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