No MySQL, tenho este procedimento armazenado com um loop For nele:
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 $$
Sempre imprime 1
. Qual é a sintaxe correta para um loop for do MySQL?
Respostas:
fonte
BEGIN...END
e criar um procedimento se eu só quiser usarLOOP
?Exemplo de sintaxe de loop while no MySQL:
Quais impressões:
Exemplo de sintaxe de loop REPEAT no MySQL:
Quais impressões:
Exemplo de sintaxe de loop FOR no MySQL:
Quais impressões:
Faça o tutorial: http://www.mysqltutorial.org/stored-procedures-loop.aspx
Se eu pegar você colocando esse tipo de construção de loop for do MySQL em produção, vou atirar em você com o lançador de mísseis de espuma. Você pode usar uma chave inglesa para bater em um prego, mas isso faz você parecer bobo.
fonte
declare str VARCHAR(255) default '';
no console do MySQL (5.6) me dá a mensagem de erroError 1064 (42000): ... for the right syntax to use near '' at line 3
, que é clara como lama (embora eu assuma que não goste da cláusula DEFAULT).delimiter //
antes de executar isso.Suponha que você tenha uma tabela com o nome 'tabela1'. Ele contém uma coluna 'col1' com o tipo varchar. A consulta à tabela da caixa é fornecida abaixo
Agora, se você deseja inserir um número de 1 a 50 nessa tabela, use o seguinte procedimento armazenado
Para chamar esse procedimento armazenado, use
fonte
Você pode trocar essa variável local por uma global, seria mais fácil.
fonte