Como funciona uma procedure internamente? Como é possível que código entre o BEGIN e o END que possua um DELIMITER diferente do que está " no lado de fora"?
Como funciona uma procedure internamente? Como é possível que código entre o BEGIN e o END que possua um DELIMITER diferente do que está " no lado de fora"?
Olá Anselmo, tudo bem? Bem as Stored Procedures como o próprio nome indica são procedimentos armazenados, e tem todas as características que o instrutor mencionou (isso para o MySQL, em outros bancos de dados podem ter mudanças). Ele basicamente funciona executando o código que está entre as instruções BEGIN e END. São apenas blocos de instruções, comando e lógicas que podemos deixar armazenadas e predefinidas e sempre que precisarmos utilizar apenas fazemos uma chamada e as mesmas são executadas. Pense nas Stored Procedures como algo rotineiro que você precisaria fazer várias vezes por dia, para evitar de ficar escrevendo o mesmo (ou os mesmos comandos) comando várias vezes, criamos uma Procedure e então sempre que precisarmos apenas executando.
Sobre o DELIMITER, ele é apenas uma instrução reservada que o MySQL interpreta como um divisor, o MySQL entende que quando tiver o DELIMITER, ele deve interpretar o código dentro desse bloco (DELIMITER) de maneira isolada sem considerar os comandos que estão fora do mesmo, pense no DELIMITER como uma instrução SELECT, que indica ao MySQL que queremos selecionar (buascar) dados.
Espero ter esclarecido suas dúvidas!
Respondeu sim, Muito obrigado!