Я бы хотел выполнить приведенный ниже запрос для вставки в таблицу в цикле:
SET @maxid = ( select max( length( id ) ) from article ) ;
SET @x=1;
WHILE @x<= @maxid DO
INSERT INTO `article_responder`
(article_id, username, reply_id)
SELECT @x, p.username, p.id
FROM article AS a, post AS p
WHERE a.id=@x AND p.article_id=@x ;
SET @x = @x + 1;
END WHILE;
Но я получаю эту ошибку:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'END WHILE' at line
Обратите внимание, что article_id
не может быть автоматически увеличен, потому что логин bussiness требует, чтобы после вставки данных следующая строка в article_responder
могла быть о любой статье.Поэтому я понятия не имел, как заполнить article_responder
обычными объединениями.
Как я могу это исправить?