Ver Mensaje Individual
  #5 (permalink)  
Antiguo 17/06/2013, 13:16
NeoAres
 
Fecha de Ingreso: mayo-2013
Mensajes: 68
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Pl/SQL de mysql, copiar contenido de tabla en otra

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Bueno, a mi en la facultad los profesores me pedían los trabajos con un mínimo de lógica y coherencia de fundamentos, no para inventar tareas.
Nosotros teníamos que fundamentar el uso, y si no se justificaba, restaba nota.

Postea lo que supones que te serviría (y por favor, incluye la declaración, no solo el body), y veremos si estás bien orientado.
Código SQL:
Ver original
  1. SET @OLDTMP_SQL_MODE=@@SQL_MODE, SQL_MODE='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
  2. DELIMITER //
  3. CREATE TRIGGER `onUpdateBook` AFTER UPDATE ON `book` FOR EACH ROW BEGIN
  4. BEGIN
  5.  
  6.  DECLARE variablesCadena VARCHAR(50);
  7.  DECLARE variablesFecha DATE;
  8.  DECLARE variableHora TIME;
  9.  DECLARE variablesDouble DOUBLE;
  10.  DECLARE variablesInt INT;
  11.  
  12.  DECLARE done INT DEFAULT 0;
  13.  
  14.  DECLARE curGetBook CURSOR FOR SELECT * FROM book WHERE Book_code LIKE NEW.Book_code;
  15.  DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
  16.  
  17.   SET done=0;
  18.  
  19.     OPEN curGetBook;
  20.      REPEAT
  21.       FETCH curGetBook INTO  VARIABLES_DECLARADAS_ANTERIORMENTE_PARA_METER_VALOR_CONSULTA;
  22.       IF NOT done THEN
  23.        INSERT INTO backup_book VALUES(MISMAS_VARIABLES_DEL_RENGLÓN_DEL_FETCH);
  24.       END IF;
  25.      UNTIL done END REPEAT;
  26.     CLOSE curGetBook;
  27.  
  28.     SET done=0;
  29. END
No he podido responder antes, he estado ocupado, el proyecto está entregado
gracias de todas maneras, cuelgo el código por si a alguien le interesa el copy/pasteo
PD: El original es mas largo y vi que era mejor resumirlo un poco

Última edición por gnzsoloyo; 17/06/2013 a las 13:21 Razón: Etiquetado incorrecto. Usar HIGHLIGHT "SQL"