CREATE PROCEDURE MAJ_copier_identifiant1(IN inVar VARCHAR(25))
BEGIN
DECLARE nom_id VARCHAR(128);
DECLARE max_id VARCHAR(128);
DECLARE max_id_obj VARCHAR(128);
DECLARE done INT DEFAULT 0;
SET @requete = CONCAT('SELECT champ3 FROM ',inVar,' WHERE champ3 NOT IN (SELECT Identifiant_beaune FROM import_tc_hotels.ass_idcdt_idbeaune)');
DECLARE cura CURSOR FOR @requete;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
SELECT "toto" as inVar;
UPDATE import_tc_hotels.inVar SET `champ3` = champ1;
OPEN cura;
REPEAT
FETCH cura INTO nom_id;
IF NOT done THEN
SELECT concat('HOTBOU02',right(max(id),8)+1) INTO max_id FROM bdr_cdt_data.hot;
INSERT INTO bdr_cdt_data.hot (id) VALUES(max_id);
INSERT INTO import_tc_hotels.ass_idcdt_idbeaune (Identifiant_cdt,Identifiant_beaune) VALUES (max_id, nom_id);
SELECT concat('obj',right(max(id),5)+1) INTO max_id_obj FROM bdr_cdt_data.obj;
INSERT INTO bdr_cdt_data.obj (id) VALUES(max_id_obj);
INSERT INTO bdr_cdt_data.ass_idobj_idssobj (idObj,idssObj) VALUES (max_id_obj,max_id);
END IF;
UNTIL done END REPEAT;
CLOSE cura;
UPDATE ass_idcdt_idbeaune INNER JOIN import_tc_hotels.inVar ON ass_idcdt_idbeaune.Identifiant_beaune = import_tc_hotels.inVar.champ3 SET import_tc_hotels.inVar.champ1 = Identifiant_cdt;
END
|
Partager