MySQL - Erorr 1235 - Cómo es posible actualizar dos tablas con un trigger?

 
Vista:

Erorr 1235 - Cómo es posible actualizar dos tablas con un trigger?

Publicado por David (2 intervenciones) el 01/03/2018 22:14:15
Antes que nada un gran saludo, quisiera que alguien me ayudara con este inconveniente el cual vengo arrastrando de varios dias para aca.

¿Cómo es posible actualizar dos tablas con un trigger?

Estoy usando phpmyadmin y no me permite hacerlo, he aqui el codigo

CREATE TRIGGER update_alumnos AFTER INSERT ON Alumnos
FOR EACH ROW BEGIN
INSERT INTO Procesos VALUES (new.id,1,1)
INSERT INTO Validar_residencia VALUES (new.id,0,'sin observaciones')
END

MySQL ha dicho: #1235 - Esta versión de MariaDB no soporta todavia 'multiple triggers with the same action time and event for one table'


Por favor ayudenme
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 98
Bronce
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Erorr 1235 - Cómo es posible actualizar dos tablas con un trigger?

Publicado por Yamil Bracho (40 intervenciones) el 01/03/2018 22:21:27
Asegurate de que eliminaste la definicion anterio del trigger
DROP TRIGGER [IF EXISTS] update_alumnos;
CREATE TRIGGER update_alumnos AFTER INSERT ON Alumnos
....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Erorr 1235 - Cómo es posible actualizar dos tablas con un trigger?

Publicado por David (2 intervenciones) el 01/03/2018 23:04:21
AMigo gracias por la respuesta, tambien lo intente y nada que me agarra
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 953
Oro
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Erorr 1235 - Cómo es posible actualizar dos tablas con un trigger?

Publicado por Leonardo Josué (414 intervenciones) el 02/03/2018 16:21:31
Hola David:

Revisa que no tengas OTRO TRIGGER con un nombre distinto que ya esté asociado a la misma tabla y a la misma acción. Además, tienes un error de sintaxis en tu TRIGGER, ya que después de cada INSERT debes de colocar un ;

1
2
3
4
5
6
7
8
9
10
11
12
13
mysql> DELIMITER $$
mysql> DROP TRIGGER update_tabla$$
Query OK, 0 rows affected (0.01 sec)
 
mysql> CREATE TRIGGER update_tabla AFTER INSERT ON tabla
    ->     FOR EACH ROW BEGIN
    ->       INSERT INTO tabla_a VALUES (new.id, 'prueba uno');
    ->       INSERT INTO tabla_b VALUES (new.id, 'prueba dos');
    ->     END;
    -> $$
Query OK, 0 rows affected (0.13 sec)
 
mysql> DELIMITER ;

Aquí está el mismo ejemplo, al insertar un registro en "tabla", el trigger inserta un registro en tabla_a y tabla_b:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
mysql> SELECT * FROM tabla;
+------+-------------+
| id   | descripcion |
+------+-------------+
|    1 | uno         |
+------+-------------+
1 row in set (0.00 sec)
 
mysql> SELECT * FROM tabla_a;
+--------+------------+
| codigo | nombre     |
+--------+------------+
|      1 | prueba uno |
+--------+------------+
1 row in set (0.00 sec)
 
mysql> SELECT * FROM tabla_b;
+--------+------------+
| codigo | nombre     |
+--------+------------+
|      1 | prueba dos |
+--------+------------+
1 row in set (0.00 sec)
 
mysql> INSERT INTO tabla values (2, 'dos');
Query OK, 1 row affected (0.04 sec)
 
mysql> SELECT * FROM tabla;
+------+-------------+
| id   | descripcion |
+------+-------------+
|    1 | uno         |
|    2 | dos         |
+------+-------------+
2 rows in set (0.00 sec)
 
mysql> SELECT * FROM tabla_a;
+--------+------------+
| codigo | nombre     |
+--------+------------+
|      1 | prueba uno |
|      2 | prueba uno |
+--------+------------+
2 rows in set (0.00 sec)
 
mysql> SELECT * FROM tabla_b;
+--------+------------+
| codigo | nombre     |
+--------+------------+
|      1 | prueba dos |
|      2 | prueba dos |
+--------+------------+
2 rows in set (0.00 sec)

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar