jueves, 30 de mayo de 2013

Rutinas, ejercicio 8.

8.   Simular un autoincrementado. Rutina para asignar un IdPedido automáticamente a cada nuevo Pedido que no tenga un valor explícito para el campo IdPedido. El valor que se le debe asignar al IdPedido debe ser el entero inmediatamente superior al mayor valor de dicho campo en la tabla Pedidos.

DELIMITER $$
CREATE DEFINER=`root`@`localhost` TRIGGER Before_Insert_Pedidos
BEFORE INSERT ON Pedidos
FOR EACH ROW
BEGIN
         DECLARE v_maxIdPedido INT;
         IF new.IdPedido IS NULL OR new.IdPedido=0 THEN
                     SELECT MAX(IdPedido) INTO v_maxIdPedido FROM Pedidos;
                    
                     SET new.IdPedido = v_maxIdPedido + 1;
         END IF;
END $$
DELIMITER ;

Tabla de referencia:

No hay comentarios:

Publicar un comentario