2 7 a Manejo de Errores

download 2 7 a Manejo de Errores

of 2

Transcript of 2 7 a Manejo de Errores

  • 8/15/2019 2 7 a Manejo de Errores

    1/2

    Unidad 2 / Programas almacenados

    NOTA: Este documento está protegido. Podrás incluir tus comentarios en los espacios de color gris.

    Actividad 7

    Nombre: 

    Apellidos: 

    Fecha: 

    E-mail: 

    Enunciado:

    Para realizar los ejercicios necesitarás las tablas del script tablas1.sql  con el que has trabajado este

    tema. Puedes hacerlos sobre la misma base de datos  practica1 volviendo a ejecutar el scripttablas1.sql , o sobre cualquier otra base de datos (p.ej. test) y con el usuario root, ejecutando

    solamente las instrucciones de creación de tablas e inserción de filas que aparece dentro del script

    tablas1.sql   (todas las filas excepto las primeras).

    !uarda todos ellos en un fichero de texto que será el que env"es al #utor (puedes tambi$n enviarlos de

    uno en uno conforme los vayas resolviendo si as" lo deseas)

    %ealiza un procedimiento de nombre ejercicio2_7  que reciba como ar&umentos los datos de un

    empleado (los ' parámetros correspondientes a las ' columnas) y los almacene en la tabla empleados.

    demás de los manejadores de error contemplados en el ejercicio *.+ anterior (clave nula, clave

    repetida, tabla inexistente y manejador -/01/P#234) se deberá a5adir otro que trate el error de

    que el departamento al que se le asi&na al empleado (numde) debe existir previamente o ser nulo

    (inte&ridad referencial).

    /jemplo de ejecución6

    78 2ntentando dar de alta al empleado +99 en el :epartamento ;996 87

    mysql< 1 /=/%12123*>? (+99, ;99, 99, @A'++7AA79B@, @A''97A*79'@, +99, 99, 9, @uis Cueso@,

    D4>/%%3%, DE/4=/)F

    -uery 3G, 9 roHs affected (9.9B sec)

    mysql> SELECT @N_ERROR, @MENSAJE;

    +----------+--------------------------+

    | @N_ERROR | @MENSAJE |

    +----------+--------------------------+

    | 1452 | Departamento inexistente |

    +----------+--------------------------+

    1 row in set (0.00 sec)

    78 2ntentando dar de alta al empleado +99 en el departamento A99 87

    mysql< 1 /=/%12123*>? (+99, A99, 99, @A'++7AA79B@, @A''97A*79'@, +99, 99, 9

    , @uis Cueso@, D4>/%%3%, DE/4=/)F

  • 8/15/2019 2 7 a Manejo de Errores

    2/2

    -uery 3G, A roH affected (9.9A sec)

    mysql> SELECT @N_ERROR, @MENSAJE;

    +----------+----------------------------+

    | @N_ERROR | @MENSAJE |

    +----------+----------------------------+

    | 0 | Alta de empleado realizada |

    +----------+----------------------------+1 row in set (0.00 sec)

    Respuesta:

     

    Envía tus conclusiones a la tutoría.