There is a set of commands that are builtin to the mysql client. They're documented under "mysql
Commands." These include DELIMITER, SOURCE, HELP, CONNECT, USE, QUIT, etc.
The .
(or SOURCE
) command is one of these builtins. You can't execute these builtin commands programmatically, nor from within a stored procedure.
It'd be like trying to run a UNIX shell builtin from a C program using execl()
.
A different analogy might be in a web browser, where you can type in special requests like "about:
" that are handled by the browser app itself; these don't result in any HTTP request to a remote web site.
Also, it wouldn't help if you could source a script from within a stored procedure, because the script itself likely contains a bunch of commands that are mysql client builtins, and thus cannot be run by the stored proc.
See also my answers to these related questions:
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…