То, что я пытаюсь сделать, это перебрать все строки таблицы, взять по одной строке за раз и что-то с ней сделать. Как то так
BEGIN
DECLARE x INT;
DECLARE countmax INT;
DECLARE id INT;
DECLARE name VARCHAR(255);
SET x = 1;
SET id = 0;
SET countmax = (select count(*) from Appian.APPIAN_DATA);
SET FOREIGN_KEY_CHECKS = 0;
WHILE x < countmax DO
SET name = (SELECT FULL_NAME
FROM Appian.APPIAN_DATA
WHERE ID = x
);
#do something with above result here later.
SET x = x + 1;
END WHILE;
select name;
END
Сверху name возвращает ноль. Я проверил, правильно ли увеличивается x, и кажется, что все в порядке. Я хочу взять строку, где ID = x.
Первый раз с использованием циклов в SQL, поэтому не уверен, что разрешено, а что нет. Однако я не видел людей, использующих селекторы внутри цикла, в основном манипулирующие данными и обновляющие строки. В конечном итоге целью будет создание временной таблицы и вставка в нее каждой строки после манипуляции. Для экспертов, что я тут делаю, что не могу вытащить данные из таблицы и присвоить их переменной?
Редактировать: обновленный код стал более понятным