You are on page 1of 19

Procedures en MySQL

Abdón Carrera R.
Un procedimiento

•También llamado Stored Procedure

•Es una Subrutina – Subprograma que se


encuentra almacenado en una base de
datos.
Porque stored procedures?
Los stored procedures son rápidos
• Tareas repetitivas

Los Stored procedures son Portables

Separa la base de datos de la Logica e implementación del programa


Sintaxis

CREATE PROCEDURE procedure_name


*Codigo sql_statement*

;
create procedure sample()
begin
select * from actor;
end
Delimiter
• Por lo general el carácter que limita el final de
línea es el ;
Este valor puede cambiar por otro carácter
Ejemplo:

delimiter &&
Stored Procedures en MySQL
Con Parametros
IN _ OUT

•IN es el parámetro de entrada


•OUT es el parámetro de salida
IN
create procedure consulta(
in nombre varchar(150), in apellido varchar(100)
)
Los valores
de NOMBRE
y APELLIDO,
Parámetros de se pueden
Entrada usar como
VARIABLES
create procedure A(in nombre varchar(150),
in apellido varchar(100))
begin
select * from actor
where actor.nombre = nombre
and actor.apellidos =apellido;
end
call A("jennifer","davis")
OUT

create procedure consulta(OUT valor int)

Parámetro de Salida
create procedure total(OUT valor integer)
begin
select count(*) into valor
from actor;
end
call total(); ERROR

call total(@valor); OK
Stored procedures en JAVA
String query = "{ call get_candidate_skill(?) }";
ResultSet rs;

try (Connection conn = MySQLJDBCUtil.getConnection();


CallableStatement stmt = conn.prepareCall(query)) {

stmt.setInt(1, candidateId);

rs = stmt.executeQuery();
String sql = "{call PRODUCT_PROC(?,?,?)}";
CallableStatement stmt=conn.prepareCall(sql);
//Set IN parameter
stmt.setInt(1, 1);
//Set OUT parameter
stmt.registerOutParameter(2, Types.VARCHAR);

//Set INOUT parameter


stmt.setDouble(3, 15.15);
stmt.registerOutParameter(3, Types.DOUBLE);
//Execute stored procedure stmt.execute();
Triggers en MySQL
Abdón Carrera R.

You might also like