Итерация по набору данных и вставка в таблицу MySQL - PullRequest
0 голосов
/ 07 июня 2018

Что я хотел бы сделать, это что-то вроде этого:

  1. Выберите идентификаторы из tableA
  2. Итерируйте по идентификаторам и для каждого сделайте вставку в tableB.

Пример: допустим, что выбор из tableA дает (123, 1452, 456) Затем я хотел бы программно выполнить вставку для каждого

INSERT INTO 
    tableB (id, something, somethingElse)
VALUES
    (123, 'asdasd', 'asdasdasd')
    (1452, 'asdasd', 'asdasdasd')
    (456, 'asdasd', 'asdasdasd')

Содержимое something и somethingElse не имеют значения.

Ответы [ 2 ]

0 голосов
/ 07 июня 2018

При работе с SQL не стоит думать «зацикливаться» или «повторяться».Найдите способ написать команду SQL, которая будет делать то, что вам нужно, работая со всем набором.Например:

INSERT INTO tableB (id, something, somethingElse)
SELECT id, 'asdasd', 'asdasdasd'
FROM TableA
0 голосов
/ 07 июня 2018

Я думаю, что вы можете использовать курсоры MySql, вот пример

DECLARE done INT DEFAULT FALSE;
DECLARE Id INT;
DECLARE cur1 CURSOR FOR SELECT id FROM TableA;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

OPEN cur1;

read_loop: LOOP
FETCH cur1 INTO Id;
IF done THEN
  LEAVE read_loop;
END IF;

  insert into tableB (id, something, somethingElse) VALUES (Id, 'asdasd', 'asdasdasd');

END LOOP;

CLOSE cur1;

вы можете найти больше об этом
Здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...