我正在寻找sql程序的帮助。 我想循环使用每个用户名循环,并从两个输入参数中添加别名,并将其添加到表用户中。我有两个程序。
抱歉波兰变量名称和程序名称。
我的第一个程序是
CREATE DEFINER=`root`@`localhost` PROCEDURE `dodajZawodnika`(IN `dane` VARCHAR(50), IN `wyswietlanie` VARCHAR(50))
NO SQL
BEGIN
IF (SELECT 1 = 1 from zawodnicy where danezawodnika = dane AND dowyswietlenia=wyswietlanie) THEN
BEGIN
Select id from zawodnicy where danezawodnika=dane AND dowyswietlenia=wyswietlanie;
END;
ELSE
BEGIN
Insert INTO zawodnicy (danezawodnika, dowyswietlenia) VALUES(dane, wyswietlanie);
SELECT last_insert_id() AS ID;
END;
END IF;
END;
我的第二个程序是
CREATE DEFINER=`root`@`localhost` PROCEDURE `stworzSklad`(IN `dane` VARCHAR(1500), IN `pseudo` VARCHAR(1000))
NO SQL
BEGIN
DECLARE counter INTEGER;
DECLARE zawodnik VARCHAR(1500);
DECLARE pseudonim VARCHAR(1000);
DECLARE zawodnicy VARCHAR(1500);
DECLARE pseudonimy VARCHAR(1000);
DECLARE exit handler for sqlexception
BEGIN
-- ERROR
ROLLBACK;
END;
DECLARE exit handler for sqlwarning
BEGIN
-- WARNING
ROLLBACK;
END;
set counter = 0;
set @zawodnicy = dane;
set @pseudonimy = psuedo;
select @zawodnicy, @pseudonimy;
REPEAT
set zawodnik=(SELECT TRIM(SUBSTRING_INDEX(@zawodnicy, ',', 1)));
set pseudonim=(SELECT TRIM(SUBSTRING_INDEX(@pseudonimy, ',', 1)));
call dodajZawodnika(zawodnik, pseudonim);
SELECT RIGHT(@zawodnicy, TRIM(length(@zawodnicy) - length(SUBSTRING_INDEX(@zawodnicy, ',', 1)) - 1)) into @zawodnicy;
SELECT RIGHT(@pseudonimy, TRIM(length(@pseudonimy) - length(SUBSTRING_INDEX(@pseudonimy, ',', 1)) - 1)) into @pseudonimy;
select zawodnik as 'zawodnik', pseudonim as 'pseudonim', dane as 'dane', pseudo as 'pseudo', @zawodnicy as 'zawodnicy', @pseudonimy as 'pseudonimy';
set counter = counter + 1;
UNTIL (@zawodnicy = '' or counter = 30)
END REPEAT;
select counter;
END
我在大约2个小时内与它战斗。 我想使用此插入的事务。 请帮我解决这个小问题。 如何以正确的方式做到这一点? 现在,调用stworzSklad程序进行无限循环(ofc没有计数器直到条件)并且任何用户都没有插入我的表中。
干杯!