Cita: la unica clave de esta tabla es idnum que es autoincrementable, no hay otra PK
No me refiero a que haya otra PK, ya que
por definición no pueden existir dos PK en la misma tabla. Me refiero a eso:
Cita: CREATE TABLE `unidad_zn` (
`idnum` int(11) NOT NULL auto_increment,
`unidad_zn` varchar(5) NOT NULL,
`descripcion` varchar(50) NOT NULL,
`dominio` varchar(20) default NULL,
PRIMARY KEY (`idnum`,`unidad_zn`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
En ese caso estás definiendo una PK basada en
dos campos, cuando debería ser en uno sólo, ya que el campo
idnum es autoincremental, y en MySQL un campo autoincremental es PK por default.
El problema es que al poner un campo doble se te producen dos inconvenientes:
1. Tienes que ingresar si o sí los dos valores (incluyendo el idnum).
2. No puedes asegurar que no se repita unidad_zn en una PK, ya que el primer componente siempre variará aunque unidad_zn sea igual, con lo que la integridade de clave primaria existirá, pero no la unicidad de unidad_zn.
¿Se entiende?
Lo que puede suceder es esto:
Cita: idnum unidad_zn descripcion dominio
1 VI SEXTA REGION BNILAHUE
2 VIII OCTAVA REGION BNILAHUE
3 RM REGION METROPOLITANA BNILAHUE
4 VIII OCTAVA REGION BNILAHUE
5 VIII OCTAVA REGION BNILAHUE
6 VIII OCTAVA REGION BNILAHUE
7 RM REGION METROPOLITANA BNILAHUE
A eso me refiero con que la clave primaria está mal definida en esa tabla.
Cita: PUEDO DE ALGUNA MANERA REVISAR LA EJECUCION DEL PROCEDIMIENTO, ALGO ASI COMO ITERARLO???
No. Los stored procedures no son debuggeables porque corren en un subproceso encapsulado en la base.