Advertisement
ganryu

Triggers

Nov 14th, 2015
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 2.00 KB | None | 0 0
  1. CREATE DEFINER=`root`@`localhost` TRIGGER `desarrollo`.`venta_BEFORE_INSERT` BEFORE INSERT ON `venta` FOR EACH ROW
  2. BEGIN
  3.     SET SQL_SAFE_UPDATES = 0;
  4.    
  5.     SET NEW.fecha_hora_venta = NOW();
  6.        
  7.     SET SQL_SAFE_UPDATES = 1;
  8. END
  9.  
  10. CREATE DEFINER=`root`@`localhost` TRIGGER `desarrollo`.`pedido_BEFORE_INSERT` BEFORE INSERT ON `pedido` FOR EACH ROW
  11. BEGIN
  12.     SET SQL_SAFE_UPDATES = 0;
  13.    
  14.     SET NEW.fecha_hora = NOW();
  15.        
  16.     SET SQL_SAFE_UPDATES = 1;
  17. END
  18.  
  19. CREATE DEFINER=`root`@`localhost` TRIGGER `desarrollo`.`pedido_AFTER_INSERT` AFTER INSERT ON `pedido` FOR EACH ROW
  20. BEGIN
  21.     SET SQL_SAFE_UPDATES = 0;
  22.     INSERT INTO linea_pedido(precio_producto, cantidad, pedido_id, producto_id)
  23.     SELECT producto.precio, carrito.cantidad, NEW.id AS pedido_id, inventario.producto_id
  24.     FROM carrito
  25.     INNER JOIN inventario
  26.         ON carrito.inventario_id = inventario.id
  27.     INNER JOIN producto
  28.         ON inventario.producto_id = producto.id
  29.     WHERE inventario.sucursal_id = NEW.sucursal_id
  30.         AND carrito.cliente_id = NEW.cliente_id;
  31.        
  32.     DELETE
  33.     FROM carrito
  34.     USING carrito INNER JOIN inventario
  35.     ON carrito.inventario_id = inventario.id
  36.     WHERE
  37.         carrito.cliente_id = NEW.cliente_id
  38.         AND inventario.sucursal_id = NEW.sucursal_id;
  39.     SET SQL_SAFE_UPDATES=1;
  40. END
  41.  
  42. CREATE DEFINER=`root`@`localhost` TRIGGER `desarrollo`.`pedido_AFTER_DELETE` AFTER DELETE ON `pedido` FOR EACH ROW
  43. BEGIN
  44. SET SQL_SAFE_UPDATES = 0;
  45.  
  46. UPDATE inventario
  47. INNER JOIN linea_pedido
  48.     ON inventario.producto_id = linea_pedido.producto_id
  49. SET inventario.stock = inventario.stock + linea_pedido.cantidad
  50. WHERE inventario.sucursal_id = OLD.sucursal_id
  51.     AND linea_pedido.pedido_id = OLD.id;
  52.    
  53. SET SQL_SAFE_UPDATES = 1;
  54. END
  55.  
  56. CREATE DEFINER=`root`@`localhost` TRIGGER `desarrollo`.`carrito_AFTER_INSERT` AFTER INSERT ON `carrito` FOR EACH ROW
  57. BEGIN
  58. SET SQL_SAFE_UPDATES = 0;
  59.  
  60. UPDATE inventario
  61. SET inventario.stock = inventario.stock - NEW.cantidad
  62. WHERE inventario.id = NEW.inventario_id;
  63.  
  64. SET SQL_SAFE_UPDATES = 1;
  65. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement