В MySQL у меня есть эта хранимая процедура с циклом For в ней:
DELIMITER $$
CREATE PROCEDURE ABC()
BEGIN
DECLARE a INT Default 0 ;
simple_loop: LOOP
SET a=a+1;
select a;
IF a=5 THEN
LEAVE simple_loop;
END IF;
END LOOP simple_loop;
END $$
Он всегда печатает 1
. Каков правильный синтаксис MySQL для цикла?
Ответы:
источник
BEGIN...END
и создавать процедуру, если я хочу только ее использоватьLOOP
?Пример синтаксиса цикла while в MySQL:
Какие отпечатки:
Пример синтаксиса цикла REPEAT в MySQL:
Какие отпечатки:
Пример синтаксиса цикла FOR в MySQL:
Какие отпечатки:
Сделайте учебник: http://www.mysqltutorial.org/stored-procedures-loop.aspx
Если я пойму, что вы запускаете в производство такие конструкции MySQL for-loop, я пристрелю вас из пенной ракетной установки. Вы можете использовать трубный ключ, чтобы забить гвоздь, но это заставит вас выглядеть глупо.
источник
declare str VARCHAR(255) default '';
в консоли MySQL (5.6) дает мне сообщение об ошибкеError 1064 (42000): ... for the right syntax to use near '' at line 3
, которое ясно, как грязь (хотя я предполагаю, что ему не нравится предложение DEFAULT).delimiter //
перед ее запуском.Предположим, у вас есть одна таблица с именем table1. Он содержит один столбец col1 с типом varchar. Запрос к таблице ящиков приведен ниже.
Теперь, если вы хотите вставить число от 1 до 50 в эту таблицу, используйте следующую хранимую процедуру
Чтобы вызвать эту хранимую процедуру, используйте
источник
Вы можете заменить эту локальную переменную на глобальную, так будет проще.
источник