bloque3:programacion
Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
bloque3:programacion [2021/11/15 18:49] – [Etiquetas en procedimientos] fernando | bloque3:programacion [2024/09/16 15:37] (actual) – editor externo 127.0.0.1 | ||
---|---|---|---|
Línea 185: | Línea 185: | ||
</ | </ | ||
- | ==== Etiquetas | + | ==== Salir de un procedimiento: |
Si deseo terminar un procedimiento en un momento dado, puedo usar la sentencia '' | Si deseo terminar un procedimiento en un momento dado, puedo usar la sentencia '' | ||
Línea 284: | Línea 284: | ||
==== Creación de scripts ==== | ==== Creación de scripts ==== | ||
- | A la hora de implementar nuevos procedimientos y funciones hay que tener en cuenta algunas cuestiones. Puesto que el delimitador ';' | + | A la hora de implementar nuevos procedimientos y funciones hay que tener en cuenta algunas cuestiones. Puesto que el delimitador |
Así, la forma habitual de escribir procedimientos o funciones es a través de la creación de scripts //SQL// utilizando la orden '' | Así, la forma habitual de escribir procedimientos o funciones es a través de la creación de scripts //SQL// utilizando la orden '' | ||
Línea 290: | Línea 290: | ||
<code sql> | <code sql> | ||
DELIMITER | | DELIMITER | | ||
+ | |||
CREATE PROCEDURE ver_pistas() | CREATE PROCEDURE ver_pistas() | ||
BEGIN | BEGIN | ||
SELECT * FROM pistas; | SELECT * FROM pistas; | ||
- | END | + | END | |
- | | | + | |
DELIMITER ; | DELIMITER ; | ||
</ | </ | ||
- | Una vez creado el procedimiento o función, desde un script o directamente en la consola, la forma de invocarlo es a través de la instrucción '' | ||
- | <code sql> | ||
- | CALL ver_pistas(); | ||
- | </ | ||
{{ youtube> | {{ youtube> | ||
Línea 338: | Línea 335: | ||
CREATE PROCEDURE nueva_pista(p_codigo VARCHAR(10), | CREATE PROCEDURE nueva_pista(p_codigo VARCHAR(10), | ||
p_precio FLOAT, p_id_polideportivo INT) | p_precio FLOAT, p_id_polideportivo INT) | ||
- | procedimiento: | + | BEGIN |
- | | + | |
+ | |||
+ | -- Después se declara el Handler | ||
DECLARE EXIT HANDLER FOR SQLEXCEPTION | DECLARE EXIT HANDLER FOR SQLEXCEPTION | ||
BEGIN | BEGIN | ||
ROLLBACK; | ROLLBACK; | ||
+ | -- Si se quiere mostrar un mensaje: (opcional) | ||
SELECT 'An error has occurred, operation rollbacked'; | SELECT 'An error has occurred, operation rollbacked'; | ||
END; | END; | ||
- | SET existe_polideportivo = (SELECT COUNT(*) FROM polideportivos | ||
- | WHERE id = p_id_polideportivo); | ||
- | IF existe_polideportivo = 0 THEN | ||
- | LEAVE procedimiento; | ||
- | END IF; | ||
START TRANSACTION; | START TRANSACTION; | ||
Línea 360: | Línea 355: | ||
COMMIT; | COMMIT; | ||
- | END procedimiento; | + | END; |
</ | </ | ||
bloque3/programacion.1637002147.txt.gz · Última modificación: 2024/09/16 15:38 (editor externo)