Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/04/2014, 11:36
jhonyyy90
 
Fecha de Ingreso: mayo-2010
Mensajes: 6
Antigüedad: 14 años, 6 meses
Puntos: 0
Cursores Mysql

Hola buen día, estoy utilizando cursores pero tengo un problema resulta que mi cursor debería obtener 2 datos pero esta mostrando 3 no se porque, les expongo las cosas con los códigos SQL que tengo:

Tabla asignacion_video (es una tabla referencial)

Código MySQL:
Ver original
  1. CREATE TABLE `asignacion_video` (
  2. `id_asignacionvideo` int(4) NOT NULL AUTO_INCREMENT,
  3. `id_ticket` int(4) NOT NULL,
  4. `id_oficialasignado` int(4) NOT NULL,
  5. PRIMARY KEY (`id_asignacionvideo`),
  6. KEY `id_oficialasignado` (`id_oficialasignado`),
  7. CONSTRAINT `asignacion_video_ibfk_1` FOREIGN KEY (`id_oficialasignado`) REFERENCES `usuario` (`id_usuario`) ON DELETE NO ACTION ON UPDATE NO ACTION

Actualmente no cuenta con un registro, cuando ejecuto mi SP debería de ser llenada, pero repite el ultimo registro.

SP Estructura:

Código MySQL:
Ver original
  1. DECLARE o,a INT;
  2. DECLARE ordernumbers CURSOR
  3. FOR
  4. asignacion_colonia.id_usuario
  5. asignacion_colonia
  6. INNER JOIN cat_estados AS cae ON asignacion_colonia.id_catestado = cae.id_estados
  7. cae.asentamiento LIKE parametro;
  8. DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done=1;
  9. SET a = ticket;
  10. OPEN ordernumbers;
  11. FETCH ordernumbers INTO o;
  12. CALL save_asignacionvideo(a,o);
  13. UNTIL done END REPEAT;
  14. CLOSE ordernumbers;

El resultado que se almacena en el cursor es el siguiente: 1 y 3

+------------+
| id_usuario |
+------------+
| 1 |
| 3 |
+------------+
2 rows in set

Entonces cuando ejecuto el procedimiento mando a llamar un insert en otro procedimiento que es el CALL save_asignacionvideo(a,o);
el cual debería de ingresar en la tabla lo siguiente

+--------------------+-----------+--------------------+
| id_asignacionvideo | id_ticket | id_oficialasignado |
+--------------------+-----------+--------------------+
| 1 | 1 | 1 |
| 2 | 1 | 3 |
+--------------------+-----------+--------------------+
Pero esta haciendo lo siguiente

+--------------------+-----------+--------------------+
| id_asignacionvideo | id_ticket | id_oficialasignado |
+--------------------+-----------+--------------------+
| 1 | 1 | 1 |
| 2 | 1 | 3 |
| 3 | 1 | 3 |
+--------------------+-----------+--------------------+
3 rows in set

lo cual no es lo correcto, espero y me puedan ayudar.

Saludos.