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
| DELIMITER $$
DROP FUNCTION IF EXISTS modifierIDS();
CREATE FUNCTION modifierIDS() RETURNS INT AS ARRAY
BEGIN
DECLARE c_id,u_id,compteur_cids,compteur_uids,compteur_egal_ids INT;
DECLARE c_code,c_raison_sociale,c_lang,c_pays,a_niveau,u_niveau_max,u_ids,c_ids VARCHAR(255);
DECLARE array_resultats INT AS ARRAY [0];
DECLARE cur1 CURSOR FOR SELECT compte.id, user.id, compte.code,compte.raison_sociale,compte.lang,compte.pays,acces.niveau,user.niveau_max,user.ids,compte.ids
FROM compte, acces, user
WHERE compte.id=acces.id_compte
AND acces.id_user=user.id
AND acces.niveau = 'superadmin'
AND user.niveau_max = 'superadmin' GROUP BY compte.id;
OPEN cur1;
FETCH cur1 INTO c_id, u_id, c_code, c_raison_sociale, c_lang, c_pays, a_niveau, u_niveau_max, u_ids, c_ids;
IF c_ids IS NULL THEN
@compteur_cids = @compteur_cids + 1;
SELECT id FROM compte;
END IF;
IF u_ids IS NULL THEN
@compteur_uids = @compteur_uids + 1;
SELECT id FROM compte;
END IF;
IF u_ids = c_ids THEN
@compteur_egal_ids = @compteur_egal_ids + 1;
SELECT id FROM compte;
END IF;
CLOSE cur1;
@array_resultats[1] = @compteur_cids;
@array_resultats[2] = @compteur_uids;
@array_resultats[3] = @compteur_egal_ids;
RETURN @array_resultats;
END $$
DELIMITER ; |
Partager