Existe um conjunto de comandos embutidos no cliente mysql. Eles estão documentados em "
mysql
Comandos
." Estes incluem DELIMITER, SOURCE, HELP, CONNECT, USE, QUIT, etc. O
\.
(ou SOURCE
) é um desses internos. Você não pode executar esses comandos integrados programaticamente, nem de dentro de um procedimento armazenado. Seria como tentar executar um shell UNIX embutido de um programa C usando
execl()
. Uma analogia diferente pode ser em um navegador da Web, onde você pode digitar solicitações especiais como "
about:
" que são tratados pelo próprio aplicativo do navegador; eles não resultam em nenhuma solicitação HTTP para um site remoto. Além disso, não ajudaria se você pudesse obter um script de dentro de um procedimento armazenado, porque o próprio script provavelmente contém vários comandos que são integrados ao cliente mysql e, portanto, não podem ser executados pelo proc armazenado.
Veja também minhas respostas para essas perguntas relacionadas:
- Executando arquivos *.sql do MySQL em PHP
- Carregar arquivos .sql de dentro PHP
- PHP:várias consultas SQL em uma instrução mysql_query