1
00:00:00,710 --> 00:00:06,600
Bueno vamos a comenzar con la primera clase donde vamos a explicar un poco la estructura y vamos a hacer

2
00:00:06,600 --> 00:00:12,940
unos unos ejemplos para que entiendan bien cómo funciona.

3
00:00:13,110 --> 00:00:20,790
Lo primero que tienen que tener en cuenta es que una transacción normalmente se utiliza para evaluar

4
00:00:21,180 --> 00:00:31,760
una porción de código en la que estamos actualizando datos o borrando datos.

5
00:00:31,770 --> 00:00:41,510
Es decir estamos ejecutando apuntes sobre sobre tablas o Lecha sobre sobre el registro de tablas.

6
00:00:41,790 --> 00:00:47,730
También lo vamos a implementar con para validar insert sobre tablas.

7
00:00:47,820 --> 00:00:49,200
Funciona de la misma manera.

8
00:00:49,310 --> 00:00:54,720
Vimos todo lo que tenga que ver con la manipulación de datos.

9
00:00:54,720 --> 00:01:02,830
Cuando uno obtiene resultados no deseados puede ejecutar una transacción para poder validar la sobretodo

10
00:01:02,910 --> 00:01:08,370
cuando hacemos un deletreo que lo que estamos haciendo es borrar la información y cuando no estamos

11
00:01:08,370 --> 00:01:15,690
seguros de que haya sucedido lo que realmente esperábamos no lo colocamos dentro de una transacción

12
00:01:16,140 --> 00:01:24,480
y podemos cancelarla con lo cual volvemos a dejar todo como estaba sin alterar los cambios en la estructura

13
00:01:24,480 --> 00:01:32,460
de la base de datos y volvemos a dejar los registros tal cual estaban inicialmente así que lo que vamos

14
00:01:32,460 --> 00:01:41,020
a hacer va a ser un ejemplo sobre la tabla paciente.

15
00:01:41,310 --> 00:01:53,280
Vamos a hacer un CELE de la tabla paciente y lo que vamos a hacer es vamos a actualizar el campo Telésforo

16
00:01:53,520 --> 00:01:59,310
vamos a hacer una transacción y vamos a validar ahí dentro una plait.

17
00:02:00,390 --> 00:02:09,060
Entonces vamos vamos a comenzar de cero vamos a borrar esto y vamos a comenzar vamos a colocar Veguín

18
00:02:11,200 --> 00:02:20,380
tan fijense que podemos colocar transaction o directamente la palabra abreviada Traum es lo mismo podemos

19
00:02:20,380 --> 00:02:24,310
colocar transaction FIJENSE QUE LO y lo azul.

20
00:02:24,310 --> 00:02:33,280
De todas formas pero vamos a colocar tranques más corto y es más es más es más fácil así que vamos a

21
00:02:33,280 --> 00:02:43,820
colocar Boynton y lo que hacemos después es inmediatamente es vamos a correr una PDT si vamos a jugar

22
00:02:43,900 --> 00:02:48,510
vamos a ejecutar un ataque en la tabla paciente.

23
00:02:48,550 --> 00:03:00,830
Si vamos a hacer un set del campo teléfono y le vamos a colocar vamos a darle el valor 4 4 4.

24
00:03:00,830 --> 00:03:02,520
Por ejemplo si

25
00:03:05,440 --> 00:03:12,080
lo que hay que tener en cuenta es que cuando se inicia una transacción los comandos que siguen después

26
00:03:13,760 --> 00:03:23,390
hacen que la tabla la tabla involucrada en este caso paciente quede bloqueada queda bloqueada hasta

27
00:03:23,720 --> 00:03:28,580
que ejecutemos un commit o un rollo back.

28
00:03:28,670 --> 00:03:29,030
Por qué.

29
00:03:29,030 --> 00:03:34,700
Porque cuando iniciamos la transacción si lo que sucede inmediatamente después es que la transacción

30
00:03:34,700 --> 00:03:42,800
está esperando está esperando un cómic o un rol Back para poder continuar si no queda en espera hasta

31
00:03:42,800 --> 00:03:44,840
que esa transacción finalice.

32
00:03:44,840 --> 00:03:54,970
Entonces si nosotros no colocamos un comité en un rol back esa tabla involucrada va a quedar bloqueada

33
00:03:55,120 --> 00:04:03,030
si por lo que vamos a tener resultados en las consultas de la base de datos vamos a obtener bloqueo

34
00:04:03,030 --> 00:04:09,500
de otros usuarios que van a querer consultarla y no van a poder entonces vamos a tener un problema así

35
00:04:09,950 --> 00:04:15,740
que vamos a tener que solucionar y es terminar la transacción es decir realizar un cómic o realizar

36
00:04:15,740 --> 00:04:16,460
un remake.

37
00:04:17,040 --> 00:04:29,210
Bueno en este caso lo que vamos a hacer es continuar y cuando vamos a continuar nosotros vamos a continuar.

38
00:04:29,390 --> 00:04:44,520
Nosotros vamos a hacer una vedette de la tabla para el paciente 8 por ejemplo el paciente 8 vamos vamos

39
00:04:44,520 --> 00:04:55,400
a actualizar los datos del campo teléfono del paciente 8 entonces cómo me aseguro o cómo tomó la determinación

40
00:04:55,400 --> 00:04:57,400
de que esto ha sido correcto.

41
00:04:57,400 --> 00:05:03,440
Bueno lo primero que puedo hacer es preguntar puedo colocar un IFF si puedo utilizar la variable del

42
00:05:03,440 --> 00:05:20,650
sistema que que es muy útil que se llama arroba arroba Roux Count esta variable lo que nos dice es cuántos

43
00:05:20,650 --> 00:05:27,070
registros cuántos registros fueron modificados en la instrucción anterior.

44
00:05:27,290 --> 00:05:30,790
Si la destrucción inmediata anterior.

45
00:05:31,120 --> 00:05:37,300
Cuántos fueron insertados cuántos fueron fueron actualizados cuántos fueron o cuántos fueron borrados

46
00:05:37,720 --> 00:05:41,770
o cuántos fueron seleccionados mediante una consulta Select.

47
00:05:42,340 --> 00:05:52,840
Entonces yo puedo preguntar aquí si racconto es igual a uno si quiere decir que este se realizó sobre

48
00:05:52,840 --> 00:05:54,690
un paciente nada más.

49
00:05:54,730 --> 00:06:06,330
Si yo pongo elhogar si Rouco es igual a uno entonces inmediatamente debajo puedo hacer un comité Traum.

50
00:06:06,550 --> 00:06:10,780
Es decir lo que estoy haciendo es confirmar la transacción.

51
00:06:10,780 --> 00:06:21,110
Decirle okay lo que existe aquí está confirmado porque hasta que no ejecutamos un commit este Apdayc

52
00:06:21,250 --> 00:06:23,420
no se hace efectivo.

53
00:06:24,010 --> 00:06:35,320
Entonces vamos a suponer que Rouco devolvió dos registros porque por algún motivo es a esa consulta

54
00:06:35,330 --> 00:06:41,950
ese lugar me arrojó dos registros y yo realmente no quiero que sean datos de teléfono Ceaga sobre dos

55
00:06:41,950 --> 00:06:49,810
registros porque particularmente estoy interesado en actualizar un solo paciente entonces aquí colocón.

56
00:06:50,880 --> 00:07:02,950
Sí es decir sin raconto medio distinto de uno ya se me puede haber dado cero o en el caso de que me

57
00:07:02,950 --> 00:07:11,440
haya dado cero no tendríamos problemas porque no tendría impacto si porque no no hubiese encontrado

58
00:07:11,440 --> 00:07:12,310
ningún paciente.

59
00:07:12,310 --> 00:07:18,240
De todas maneras no actualizaría nada pero vamos a suponer que me dio dos si el Rouco me dio dos.

60
00:07:18,240 --> 00:07:25,740
Entonces hago aquí abajo en un rol back Traum.

61
00:07:25,960 --> 00:07:34,400
Si esto es lo que es lo que me hace me me cancelã este Applewhite y me deja el resultado tal cual como

62
00:07:34,400 --> 00:07:36,620
estaba vamos a probarlo a ver que sucede.

63
00:07:37,160 --> 00:07:44,420
Vamos a ejecutarlo este selecto lo vamos a comentar y vamos a ejecutarlo

64
00:07:47,880 --> 00:07:51,250
me dice un registro afectado.

65
00:07:51,290 --> 00:07:52,600
Vamos a consultar la tabla.

66
00:07:56,660 --> 00:08:06,000
Y me ha modificado el paciente 8 y me han colocado el teléfono en el valor que le he colocado 4 4 4.

67
00:08:06,050 --> 00:08:11,210
Ahora vamos a cambiarlo va a hacer otra otra prueba vamos a modificar vamos a actualizar el paciente

68
00:08:11,390 --> 00:08:17,060
6 y vamos a preguntar acá vamos a preguntar

69
00:08:19,760 --> 00:08:26,480
vamos a dejar este Robocop Roca en 1 y vamos a cambiar el waren entonces en el Wer le vamos a colocar

70
00:08:27,110 --> 00:08:29,420
Wer apellido

71
00:08:31,670 --> 00:08:43,550
igual a Pérez fijense que con y con apellido Pérez tengo dos pacientes tengo el paciente y el 7 entonces

72
00:08:44,690 --> 00:08:54,590
claramente Applewhite me va a intentar actualizar estos dos registros sí y acá lo que estoy validando

73
00:08:54,590 --> 00:09:01,460
es justamente si el robo es igual a 1 me confirma la transacción si no me hago un Robock vamos a ver

74
00:09:01,490 --> 00:09:13,220
qué sucede vamos a ejecutarlo sí y me dice 3 Rou afecta el fijense tenía 3 no tenía 2.

75
00:09:13,940 --> 00:09:25,290
Vamos a vamos a ver qué sucedió con la tabla y fíjense no me realizó ningún cambio tenía 3 tenía el

76
00:09:25,560 --> 00:09:34,930
paciente nueve también tenía apellido Pérez fijense no me actualizó no me actualizó el teléfono.

77
00:09:35,190 --> 00:09:45,780
Para esos pacientes acá lo que estuvimos evaluando es que si este Applewhite me arrojaba más de un registro

78
00:09:46,620 --> 00:09:54,470
no me realicé la transacción y fue exactamente lo que hizo fue hacer un rollo back hacer un rol back

79
00:09:54,480 --> 00:09:59,130
de la transacción y me dejó la tabla tal cual como estaba originalmente.
