Autor Tema: como hago esto mysq  (Leído 2202 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado froilan

  • Sv Member
  • ***
  • Mensajes: 333
como hago esto mysq
« : junio 21, 2011, 10:01:11 pm »
hola compañeros tengo una gran duda la cosa en que se que tengo que utilizar un trigger pero el rollo es que

tengo estas tablas

alumnos                                   notas
carnet  (auto_increment)                     idnota        (auto_increment)
nombres                                              carnet        (esta seria foranea)
contraseña                                          nota1
                                                            nota2
                                                            nota3
                                                            nota4
 
nota 1,2,3,4 son default 0, la cosa es que lo que necesito es que al momento de crear un alumno el carnet se guarde en la tabla notas y que me quede de esta forma

asumiendo que el carnet es 00001 y el idnota es 002

 
   idnota       002
   carnet       00001
   nota1        0
   nota2        0
   nota3        0
   nota4        0   

entonses aqui ya no se que hacer y agradeseria mucho que me ayudaran!

DELIMITER $$

CREATE   TRIGGER inseN AFTER INSERT ON alumno
    FOR EACH ROW BEGIN
      INSERT INTO nota (carnet) VALUES()
    END

$$

DELIMITER ;




                             

Desconectado edu_guerr

  • Sv Member
  • ***
  • Mensajes: 463
Re: como hago esto mysq
« Respuesta #1 : junio 22, 2011, 08:11:32 am »
insert-select te puede servir

Esto es lo que esta en la doc. de Mysql
With INSERT ... SELECT, you can quickly insert many rows into a table from one or many tables
http://dev.mysql.com/doc/refman/5.0/en/insert-select.html

Proba este:

Código: [Seleccionar]

DELIMITER $$
CREATE   TRIGGER inseN AFTER INSERT ON alumnos
    FOR EACH ROW BEGIN
      INSERT INTO nota(carnet,nota1,nota2,nota3,nota4) SELECT MAX(carnet)AS 'C',0,0,0,0 FROM alumnos;
    END
$$
DELIMITER ;
El promedio ya queda a opcion si lo almacenas o solo calculas..

Desconectado froilan

  • Sv Member
  • ***
  • Mensajes: 333
Re: como hago esto mysq
« Respuesta #2 : junio 22, 2011, 12:38:45 pm »
hey me salio con esto

DELIMITER $$

CREATE
    /*[DEFINER = { user | CURRENT_USER }]*/
    TRIGGER `notas`.`inse` AFTER INSERT ON alumno
    FOR EACH ROW BEGIN
         INSERT INTO nota SET  carnet = NEW.carnet, idmat= 9;
         INSERT INTO nota SET  carnet = NEW.carnet, idmat= 10;
         INSERT INTO nota SET  carnet = NEW.carnet, idmat= 11;
         INSERT INTO nota SET  carnet = NEW.carnet, idmat= 12;
    END$$

DELIMITER ;