External Language Stored Procedures for MySQL es un parche para MySQL 6 que nos permite ejecutar procedimientos almacenados creados en otro lenguaje de programación externo a MySQL.
Los procedimientos almacenados se declaran en SQL usando sintaxis estándar de compilación, mientras que los que se implementan en otros lenguajes de programación se implementan como plugins que se instalan en el servidor en tiempo de ejecución.
Actualmente admite los plugins para Java y Perl, además de dar soporte a peticiones XML-RPC como procedimientos almacenados.
Un ejemplo para Perl serÃa el siguiente:
sub test1() {
my $dsn= "DBI:mysql:test";
my $dbh= DBI->connect($dsn, undef, undef) or
die "Error al conectar";
$dbh->do("INSERT INTO t1 (txt) VALUES ('hello world')");
return 0;
}
Y se usarÃa de la siguiente manera:
mysql> CREATE TABLE test.t1 (
seq INT NOT NULL AUTO INCREMENT PRIMARY KEY,
txt VARCHAR(128));
mysql> CREATE PROCEDURE test.test1()
LANGUAGE Perl MODIFIES SQL DATA
EXTERNAL NAME 'MyDBIExample::test1';
mysql> LOCK TABLE test.t1 WRITE;
mysql> CALL test.test1();
mysql> UNLOCK TABLES;
mysql> SELECT * FROM test.t1;
External Language Stored Procedures for MySQL