MySQL - trigger en msql

 
Vista:

trigger en msql

Publicado por Dana (2 intervenciones) el 14/05/2017 18:18:55
hola, quisiera saber si puede ayudarme
tengo que hacer unos trigger en MySQL para restringir relaciones

tengo dos tablas

tabla maestro y tengo tabla materia

en tabla materia se encuentra el id del maestro

y la condición dice: un maestro no puede dar mas de 5 materias

en postgresql mi trigger es de la siguiente manera

1
2
3
4
5
6
7
8
9
10
11
12
create or replace function limitar_maestro() returns trigger as $limitar_maestro$
begin
if (select count(*) from materia where estado_materia='activada' AND id_maestro=new.id_maestro)=5 then
raise exception 'Un maestror no puede dar clase de mas de 5 materias';
end if;
return new;
end;
 
$ limitar_maestro$ language plpgsql;
 
create trigger  limitarMaestro before insert or update on proyecto
for each row execute procedure  limitar_maestro();

y quisiera saber como hacer pero en msql
les agradesco mucho
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
Imágen de perfil de Leonardo Daniel A.
Val: 88
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

trigger en msql

Publicado por Leonardo Daniel A. (34 intervenciones) el 15/05/2017 07:40:05
1
2
3
4
5
6
7
8
9
10
11
12
13
14
CREATE TRIGGER limitar_maestro
BEFORE INSERT ON materia
FOR EACH ROW
BEGIN
DECLARE num_rows INTEGER;
 
select count(*) into num_rows from materia
      where estado_materia='activada' AND id_maestro=new.id_maestro)=5:
 
IF num_rows = 5  THEN
    set msg = "DIE: You broke the rules... I will now Smite you, hold still...";
    SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = msg;
END IF;
END$$
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

trigger en msql

Publicado por Dana (2 intervenciones) el 27/05/2017 23:00:58
muchas gracias fue de ayuda
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