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 :

Erreur d'exécution


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5
    Par défaut Erreur d'exécution
    Bonjour

    je suis sur un dédié chez OVH

    j'essaye d’exécuter ce sql :

    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
    -- TABLE
    --------------------------------------------------------------------------------------------------------------------------------
     
    CREATE TABLE `ps_abonnement` (
    								`id_abonnement` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
    								`id_order` INT NOT NULL ,
    								`id_product` INT NOT NULL ,
    								`id_customer` INT NOT NULL ,
    								`product_quantity` INT NOT NULL,
    								`date_add` DATETIME NOT NULL ,
    								`date_begin` DATE NOT NULL ,
    								`date_end` DATE NOT NULL ,
    								`deleted` BOOLEAN NOT NULL
    )									
     
     
     
    -- VIEW
    --------------------------------------------------------------------------------------------------------------------------------
     
    CREATE VIEW ps_ordersdetail AS 
    	SELECT ps_orders.id_order, ps_orders.id_customer, ps_orders.current_state, ps_orders.valid, ps_orders.date_add,
    	ps_order_detail.product_id, ps_order_detail.product_quantity, ps_order_detail.product_reference
    	FROM ps_orders INNER JOIN ps_order_detail ON ps_orders.id_order = ps_order_detail.id_order;
     
     
     
    -- PROCEDURE STOCKEE
    --------------------------------------------------------------------------------------------------------------------------------
     
    DELIMITER |
    CREATE PROCEDURE procedure_abonnement(proc_id_order INT(10), proc_current_state INT(10), old_state INT(10))
    BEGIN
    	DECLARE fini INT(11) DEFAULT 0;
    	DECLARE product INT(11);
    	DECLARE customer INT(11);
    	DECLARE quantity INT(11);
    	DECLARE reference VARCHAR(11);
    	DECLARE date_ad DATETIME;
    	DECLARE cur_product CURSOR FOR SELECT product_id FROM ps_ordersdetail WHERE id_order=proc_id_order;
    	DECLARE cur_customer CURSOR FOR SELECT id_customer FROM ps_ordersdetail WHERE id_order=proc_id_order;
    	DECLARE cur_quantity CURSOR FOR SELECT product_quantity FROM ps_ordersdetail WHERE id_order=proc_id_order;
    	DECLARE cur_ref CURSOR FOR SELECT product_reference FROM ps_ordersdetail WHERE id_order=proc_id_order;
    	DECLARE cur_add CURSOR FOR SELECT date_add FROM ps_ordersdetail WHERE id_order=proc_id_order;
    	DECLARE CONTINUE HANDLER FOR NOT FOUND SET fini = 1;
    	IF proc_current_state = 1 THEN
    		OPEN cur_product;
    		OPEN cur_customer;
    		OPEN cur_quantity;
    		OPEN cur_ref;
    		OPEN cur_add;
    		WHILE fini <> 1 DO
    			FETCH cur_product INTO product;
    			FETCH cur_customer INTO customer;
    			FETCH cur_quantity INTO quantity;
    			FETCH cur_ref INTO reference;
    			FETCH cur_add INTO date_ad;
    			IF fini <> 1 THEN
    				IF proc_current_state <> old_state THEN
    					IF proc_current_state = 1 AND old_state = 0 THEN
    						IF reference LIKE "6%" THEN
    							INSERT INTO ps_abonnement (id_order, id_product, id_customer, product_quantity, date_add, date_begin, date_end)
    							VALUES (proc_id_order, product, customer, quantity, date_ad, NOW(), DATE_ADD(now(), INTERVAL 6 MONTH));
    						ELSEIF reference LIKE "12%" THEN
    							INSERT INTO ps_abonnement (id_order, id_product, id_customer, product_quantity, date_add, date_begin, date_end)
    							VALUES (proc_id_order, product, customer, quantity, date_ad, NOW(), DATE_ADD(now(), INTERVAL 12 MONTH));
    						END IF;
    					END IF;
    				END IF;
    			END IF;
    		END WHILE;
    		CLOSE cur_product;
    		CLOSE cur_customer;
    		CLOSE cur_quantity;
    		CLOSE cur_ref;
    		CLOSE cur_add;
    		SET fini=0;
    	ELSE
    		DELETE FROM ps_abonnement WHERE id_order = proc_id_order;
    	END IF;
    END
    |
     
     
     
    -- TRIGGER
    --------------------------------------------------------------------------------------------------------------------------------
     
    CREATE TRIGGER trigger_abonnement AFTER UPDATE ON ps_orders
    FOR EACH ROW
    CALL procedure_abonnement(NEW.id_order, NEW.valid, OLD.valid);
    et j'ai toujours ce type d'erreur :

    Erreur
    Requête SQL: Documentation

    -- TABLE -------------------------------------------------------------------------------------------------------------------------------- CREATE TABLE `ps_abonnement` ( `id_abonnement` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , `id_order` INT NOT NULL , `id_product` INT NOT NULL , `id_customer` INT NOT NULL , `product_quantity` INT NOT NULL, `date_add` DATETIME NOT NULL , `date_begin` DATE NOT NULL , `date_end` DATE NOT NULL , `deleted` BOOLEAN NOT NULL ) -- VIEW -------------------------------------------------------------------------------------------------------------------------------- CREATE VIEW ps_ordersdetail AS SELECT ps_orders.id_order, ps_orders.id_customer, ps_orders.current_state, ps_orders.valid, ps_orders.date_add, ps_order_detail.product_id, ps_order_detail.product_quantity, ps_order_detail.product_reference FROM ps_orders INNER JOIN ps_order_detail ON ps_orde[...]

    MySQL a répondu: Documentation

    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '--------------------------------------------------------------------------------' at line 2
    merci pour votre aide

    Philippe

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Par défaut
    Bonjour,

    Ce type de commentaire avec MySQL doit commencer par "-- " et non simplement "--"
    Ajoutez une espace en troisième position (ou supprimez les lignes contenant "-------------------------------").

    Ensuite, il vous manque un point-virgule après la création de la table

    concernant votre procédure, elle mériterait d'être réécrite : une seule requête suffirait pour la remplacer, à la place de vos cinq curseurs et de vos IF imbriqués...

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 001
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par aieeeuuuuu Voir le message
    cinq curseurs


    Superbe !!!! J'aime !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. [JVM][8.1.7] Erreur d'exécution de initjvm.sql
    Par Escuzze dans le forum Oracle
    Réponses: 4
    Dernier message: 01/07/2005, 15h39
  2. Message d'erreur à l'exécution d'une install
    Par titof dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 22/03/2005, 11h20
  3. [CR8][VB6] Erreur d'exécution 20533
    Par pvava dans le forum SDK
    Réponses: 1
    Dernier message: 01/02/2005, 10h27
  4. Erreurs d'exécution sous delphi 5
    Par nkd dans le forum Langage
    Réponses: 3
    Dernier message: 06/11/2004, 17h25
  5. [Apache Perl] Erreur à l'exécution de mes cgi
    Par GLDavid dans le forum Apache
    Réponses: 4
    Dernier message: 28/08/2004, 20h23

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