Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/03/2013, 13:08
cachota
 
Fecha de Ingreso: marzo-2013
Mensajes: 1
Antigüedad: 11 años, 1 mes
Puntos: 0
Insertar edad a partir de fecha nacimiento en otra tabla

Hola que tal! Este es mi primer post , ya que me estoy iniciando en este mundo.

Después de muchos intentos fallidos y de consultar muchas webs he conseguido calcular la edad de una persona a partir de su fecha de nacimiento y además se inserta en otra tabla diferente mediante un sencillo trigger.
Este es el código:

create table participantes (dni VARCHAR(10) NOT NULL PRIMARY KEY,
nombre VARCHAR(30) NOT NULL,
f_nacimiento DATE NOT NULL,
telefono VARCHAR(15)) Engine=InnoDB;

create table entrenadores (dni VARCHAR(10) NOT NULL PRIMARY KEY,
edad TINYINT UNSIGNED) Engine=InnoDB;

ALTER TABLE entrenadores ADD INDEX indice1 (dni);
ALTER TABLE entrenadores ADD CONSTRAINT con1 FOREIGN KEY (dni) REFERENCES participantes(dni) ON DELETE NO ACTION;

DELIMITER &&
CREATE TRIGGER tr_fnacimiento AFTER INSERT ON participantes FOR EACH ROW
BEGIN
UPDATE entrenadores SET edad=TIMESTAMPDIFF (YEAR,new.f_nacimiento,DATE(NOW()))
WHERE dni=new.dni;
END &&

INSERT INTO entrenadores VALUES ('001','');
INSERT INTO participantes VALUES ('001','Juan Antonio Orenga','1965-12-05','666555444');

Esto insertará automaticamente la edad en la tabla entrenadores.
Lo posteo porque he visto muchas dudas respecto a parecidas operaciones y espero que le pueda servir a alguien. Un saludo!