Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

[SOLUCIONADO] Insertar edad a partir de fecha nacimiento en otra tabla

Estas en el tema de Insertar edad a partir de fecha nacimiento en otra tabla en el foro de Mysql en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 07/03/2013, 13:08
 
Fecha de Ingreso: marzo-2013
Mensajes: 1
Antigüedad: 11 años, 9 meses
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!

Etiquetas: calculo, foreignkey, trigger
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:22.