Red de conocimiento del abogados - Respuesta jurídica de la empresa - ¿Cuáles son los usos básicos de los procedimientos almacenados de MySQL?

¿Cuáles son los usos básicos de los procedimientos almacenados de MySQL?

¿Cuáles son los usos básicos de los procedimientos almacenados de MySQL?

Cuando un programa externo accede a la base de datos (como PHP), es necesario organizar muchas declaraciones SQL.

Especialmente cuando la lógica de negocios es compleja, una gran cantidad de SQL y condiciones se mezclan en el código PHP, lo que hace que la gente se estremezca. Ahora, con los procedimientos almacenados de MySQL, la lógica empresarial se puede encapsular en procedimientos almacenados, lo que no solo es fácil de mantener, sino también eficiente en su ejecución.

1. MySQL crea un procedimiento almacenado

"pr_add" es un procedimiento almacenado MySQL simple. Este procedimiento almacenado MySQL tiene dos parámetros de entrada de tipo int "a" y "b". la suma de estos dos parámetros.

El código de copia es el siguiente:

eliminar procedimiento si existe pr_add;

Calcular la suma de dos números

El código de copia es el siguiente:

crear procedimiento pr_add

(

a int,

b int

)

comenzar

declarar c int;

si a es nulo entonces

establecer a = 0

fin; si;

p>

si b es nulo entonces

establezca b = 0

end if

establezca c; = a b;

select c as sum;

/*

return c;

No se puede utilizar en procedimientos almacenados de MySQL. return solo puede aparecer en funciones.

*/

end;

2. Llame al procedimiento almacenado de MySQL

Copia el código de la siguiente manera:

call pr_add(10, 20);

Ejecute el procedimiento almacenado de MySQL y los parámetros del procedimiento almacenado son variables de usuario de MySQL.

Copia el código de la siguiente manera:

set @a = 10

set @b = 20

call pr_add(@; a , @b);

3. Características de los procedimientos almacenados de MySQL

La sintaxis simple para crear procedimientos almacenados de MySQL es:

Copie el código de la siguiente manera:

crear procedimiento nombre del procedimiento almacenado ()

(

[in|out|inout] tipo de datos del parámetro

)

begin

Instrucción MySQL

end;

Los parámetros del procedimiento almacenado MySQL serán por defecto "in", "out" y "inout" si no están especificados explícitamente "en". Tradicionalmente, no especificamos explícitamente parámetros que estén "en".

1. El "()" después del nombre del procedimiento almacenado de MySQL es obligatorio Incluso si no hay ningún parámetro, el "()" sigue siendo necesario.

2. Los parámetros no se pueden utilizar en Agregar "@" antes del nombre del parámetro, como: "@a int". La siguiente sintaxis para crear un procedimiento almacenado es incorrecta en MySQL (correcta en SQL Server).

Las variables en los procedimientos almacenados de MySQL no necesitan agregar "@" antes del nombre de la variable, aunque las variables de usuario del cliente MySQL sí necesitan agregar "@".

Copia el código de la siguiente manera:

crear procedimiento pr_add

(

@a int, -- error

b int -- correcto

)

3. Los parámetros de los procedimientos almacenados de MySQL no pueden especificar valores predeterminados.

4. Los procedimientos almacenados de MySQL no necesitan agregar "como" delante del cuerpo del procedimiento. El procedimiento almacenado de SQL Server debe agregar la palabra clave "as".

Copia el código de la siguiente manera:

crear procedimiento pr_add

(

a int,

b int

)

as -- Error, MySQL no requiere "as"

comenzar

instrucción mysql...

end;

5. Si el procedimiento almacenado de MySQL contiene varias declaraciones de MySQL, se requiere la palabra clave de inicio y fin.

Copia el código de la siguiente manera:

crear procedimiento pr_add

(

a int,

b int

)

comenzar

sentencia mysql 1...

sentencia mysql 2...

> end;

6. Al final de cada declaración en el procedimiento almacenado de MySQL, un punto y coma ";"

Copie el código de la siguiente manera:

. ..

declare c int;

si a es nulo entonces

establezca a = 0

end if; >

p>

...

end;

7. Comentarios en procedimientos almacenados MySQL.

Copiar código El código es el siguiente:

/*

Este es un

comentario MySQL de varias líneas.

*/

declare c int; -- Este es un comentario MySQL de una sola línea (tenga en cuenta que debe haber al menos un espacio después de --)

si a es nulo entonces # Este también es un comentario MySQL de una sola línea

set a = 0

end if;

;