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!