1 00:00:00,050 --> 00:00:03,109 ya para ir finalizando 2 00:00:03,109 --> 00:00:04,750 lo último que vamos a ver son los triggers 3 00:00:04,750 --> 00:00:06,990 los triggers son disparadores 4 00:00:06,990 --> 00:00:08,710 efectivamente se disparan 5 00:00:08,710 --> 00:00:11,009 se ejecutan cuando se produce 6 00:00:11,009 --> 00:00:12,550 una actualización de algún tipo 7 00:00:12,550 --> 00:00:14,130 en alguna información 8 00:00:14,130 --> 00:00:16,649 exactamente se ejecutan 9 00:00:16,649 --> 00:00:18,289 antes de que se produzca una inserción 10 00:00:18,289 --> 00:00:20,550 antes de que se produzca un borrado 11 00:00:20,550 --> 00:00:22,789 después de que se produzca un borrado 12 00:00:22,789 --> 00:00:24,969 o después de que se produzca 13 00:00:24,969 --> 00:00:25,890 una inserción 14 00:00:25,890 --> 00:00:28,070 estos son los casos en los cuales 15 00:00:28,070 --> 00:00:29,269 pueden saltar 16 00:00:29,269 --> 00:00:33,869 También, también, cuando se actualiza, antes o después de que se actualice. 17 00:00:34,609 --> 00:00:42,670 Bueno, vamos a ver cómo funcionan, porque realmente son muy simples de entender y vamos a ir creando este ejemplo. 18 00:00:42,670 --> 00:00:49,990 Vamos a crear una tabla de animales con un campo id y un campo name. 19 00:00:50,869 --> 00:00:57,829 Vamos a crear una tabla que nos cuente cuántos animales hay, que solamente tiene un contador int. 20 00:00:57,829 --> 00:01:03,149 Y vamos a insertar inicialmente al contador de animales el valor 0. 21 00:01:03,289 --> 00:01:10,109 Vamos a ejecutar todo esto, lo vamos a llevar tal cual, y nos lo llevamos a nuestro sistema. 22 00:01:10,730 --> 00:01:18,090 Vale, pegamos todo esto, y efectivamente ahora mismo tendremos la tabla animals y la tabla animalCount, 23 00:01:18,670 --> 00:01:23,810 y esta última con un valor, el campo animal con un valor 0. 24 00:01:23,810 --> 00:01:28,450 bueno, vamos a crear un disparador 25 00:01:28,450 --> 00:01:30,329 vamos a crear un trigger 26 00:01:30,329 --> 00:01:32,310 entonces vamos a crear un trigger 27 00:01:32,310 --> 00:01:34,409 que se llama increment animal 28 00:01:34,409 --> 00:01:38,609 que diga que después de que se inserte algo en animals 29 00:01:38,609 --> 00:01:41,989 pues para cada fila que insertemos 30 00:01:41,989 --> 00:01:44,010 actualice animal count 31 00:01:44,010 --> 00:01:46,870 y ponga lo que tuviera animal count 32 00:01:46,870 --> 00:01:49,310 el campo animals de animal count 33 00:01:49,310 --> 00:01:51,810 un valor más 34 00:01:51,810 --> 00:01:53,950 Vamos a crear este disparador 35 00:01:53,950 --> 00:01:55,049 Lo creamos 36 00:01:55,049 --> 00:01:58,739 Lo creamos 37 00:01:58,739 --> 00:02:00,640 Ya está creado 38 00:02:00,640 --> 00:02:02,019 En este momento ya está creado 39 00:02:02,019 --> 00:02:05,219 Entonces en el momento que yo inserte en animals 40 00:02:05,219 --> 00:02:05,799 Un valor 41 00:02:05,799 --> 00:02:08,840 AnimalCount inmediatamente 42 00:02:08,840 --> 00:02:11,240 Su valor animals cambiará 43 00:02:11,240 --> 00:02:14,060 Se añadirá un valor más 44 00:02:14,060 --> 00:02:15,099 Entonces pues nada 45 00:02:15,099 --> 00:02:16,340 Vamos a insertar 46 00:02:16,340 --> 00:02:17,560 Vamos a insertar 47 00:02:17,560 --> 00:02:19,240 Un animal 48 00:02:19,240 --> 00:02:20,800 Vamos a insertar el primer animal 49 00:02:20,800 --> 00:02:23,360 Este animal que tenemos aquí 50 00:02:23,360 --> 00:02:24,719 así nos evitamos a escribir 51 00:02:24,719 --> 00:02:26,780 lo insertamos 52 00:02:26,780 --> 00:02:29,060 entonces si ahora vemos 53 00:02:29,060 --> 00:02:30,599 cuánto vale 54 00:02:30,599 --> 00:02:33,759 animalCount 55 00:02:33,759 --> 00:02:35,740 que inicialmente 56 00:02:35,740 --> 00:02:37,599 valía 0, pues ya vale 57 00:02:37,599 --> 00:02:39,939 1, si insertamos un nuevo animal 58 00:02:39,939 --> 00:02:41,620 vamos a insertar el otro animal que tenemos 59 00:02:41,620 --> 00:02:41,979 aquí 60 00:02:41,979 --> 00:02:50,120 pues efectivamente cuando 61 00:02:50,120 --> 00:02:52,479 busquemos esto ya vemos que tenemos 2 62 00:02:52,479 --> 00:02:54,120 es decir, automáticamente 63 00:02:54,120 --> 00:02:55,879 en el momento que realizamos una acción 64 00:02:55,879 --> 00:02:58,379 ejecuta una serie de acciones 65 00:02:58,379 --> 00:03:00,659 que estén entrelazadas con ella 66 00:03:00,659 --> 00:03:01,439 ¿de acuerdo? 67 00:03:01,979 --> 00:03:04,080 esta es la idea de los disparadores 68 00:03:04,080 --> 00:03:06,680 hay que tener cuidado que no entremos en bucle 69 00:03:06,680 --> 00:03:08,379 es decir, que por ejemplo 70 00:03:08,379 --> 00:03:09,680 imaginemos que ahora 71 00:03:09,680 --> 00:03:11,620 cada vez que aquí modificáramos algo 72 00:03:11,620 --> 00:03:14,780 añadieramos algo en la tabla animals 73 00:03:14,780 --> 00:03:17,060 pues estaríamos en un bucle completo 74 00:03:17,060 --> 00:03:18,620 con lo cual el sistema al final 75 00:03:18,620 --> 00:03:19,580 se volvería loco 76 00:03:19,580 --> 00:03:21,240 bueno, cuestiones de este tipo 77 00:03:21,240 --> 00:03:23,199 esto es muy útil por ejemplo para saber 78 00:03:23,199 --> 00:03:25,340 el usuario de la base de datos que está introduciendo 79 00:03:25,340 --> 00:03:26,639 a qué hora ha introducido algo 80 00:03:26,639 --> 00:03:28,439 es decir, para llegar locos del sistema 81 00:03:28,439 --> 00:03:30,639 es muy, muy útil