Problème creation procedure & boucle while
Bonjour,
voici mon ébauche de procedure :
Code:
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
| delimiter |
CREATE PROCEDURE livraison()
BEGIN
DECLARE @i INT DEFAULT 0;
DECLARE @comp INT DEFAULT 0;
create table mode_livraison as select * from corresp_mode_livraison;
ALTER TABLE mode_livraison ADD `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST;
set @i:=1;
select @i;
set @comp :=SELECT COUNT * FROM mode_livraison;
select @comp;
WHILE (@i < @comp) DO
update commandes set
livraison_reelle := (select livraison_reelle from mode_livraison where id=@i) ,
livraison_etiquette := (select livraison_etiquette from mode_livraison where id=@i)
where
service_livraison in (select livraison_marketplace from mode_livraison where id=@i);
set @i:=@i+1;
select @i;
END WHILE;
drop table mode_livraison;
END
| |
voici l'erreur après envoi dans phpmyadmin (fenetre sql) :
Citation:
#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 '@i INT DEFAULT 0; DECLARE @comp INT DEFAULT 0; create table mode_livraison a' at line 3
Si quelqu'un s'y connaissant en SQL souhaite m'apporter ses lumières, je suis preneur :mrgreen:
DECLARE APRES BEGIN -> PAS BIENNNNNNN !
Voilà, je me répond à moi-même, mais çà ne marche toujours pas...........
voici le code pseudo-corrigé:
Code:
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
| delimiter |
CREATE PROCEDURE livraison()
BEGIN
create table mode_livraison as select * from corresp_mode_livraison;
ALTER TABLE mode_livraison ADD `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST;
set @i:=1;
select @i;
set @comp :=SELECT COUNT * FROM mode_livraison;
select @comp;
WHILE (@i < @comp) DO
update commandes set
livraison_reelle := (select livraison_reelle from mode_livraison where id=@i) ,
livraison_etiquette := (select livraison_etiquette from mode_livraison where id=@i)
where
service_livraison in (select livraison_marketplace from mode_livraison where id=@i);
set @i:=@i+1;
select @i;
END WHILE;
drop table mode_livraison;
END
| |
Nouveau message mysql :
#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 'SELECT COUNT * FROM mode_livraison; select @comp; WHILE (@i < @comp) DO upd' at line 11...............................