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

enviar registros de una tabla a un campo de otra tabla

Estas en el tema de enviar registros de una tabla a un campo de otra tabla en el foro de Mysql en Foros del Web. hola primero que nada agradecerles por el foro hay gente que tiene mucho conocimiento y espero adquirirlos y ser igual que ustedes mi problema es ...
  #1 (permalink)  
Antiguo 15/10/2008, 15:08
 
Fecha de Ingreso: octubre-2008
Mensajes: 67
Antigüedad: 15 años, 6 meses
Puntos: 0
Sonrisa enviar registros de una tabla a un campo de otra tabla

hola primero que nada agradecerles por el foro hay gente que tiene mucho conocimiento y espero adquirirlos y ser igual que ustedes

mi problema es el siguiente

tengo que hacer una consulta o trigger envie los datos que se ingresen en una tabla x a un campo de otra tabla x espero se entienda ya que no se mucho de mysql
y con un ejemplo creo poder hacerlo


saludos
  #2 (permalink)  
Antiguo 15/10/2008, 16:17
Avatar de Snd234  
Fecha de Ingreso: mayo-2007
Ubicación: Frente al PC
Mensajes: 413
Antigüedad: 17 años
Puntos: 2
Respuesta: enviar registros de una tabla a un campo de otra tabla

Usando triggers dices ?
Quieres meter por ejemplo 5 datos que se ingresaron en la Tabla X y dejarlos todos en 1 Campo Y de la Tabla Y, o traspasar datos de una tabla a otra con la misma estructura ?
__________________
KIBIT.cl
  #3 (permalink)  
Antiguo 15/10/2008, 21:32
 
Fecha de Ingreso: diciembre-2007
Mensajes: 50
Antigüedad: 16 años, 4 meses
Puntos: 1
Respuesta: enviar registros de una tabla a un campo de otra tabla

Suponiendo q tenemos estas 2 tablas:

TablaX
x1
x2

TablaY
y1
y2

Código:
CREATE TRIGGER Inserta_en_TablaY BEFORE INSERT ON TablaX
  FOR EACH ROW BEGIN
    INSERT INTO TablaY SET y1 = NEW.x1, y2 = NEW.x2;
  END
En este ejemplo cuando antes de q se ejecute la sentencia insert sobre la tabla TABLAX se procede a llenar la tabla TABLAY con los valores de la misma, para lograr esto se utiliza la palabra clave NEW la cual nos permite acceder a los valores de la fila q va a ser insertada "new.campo_a_obtener"... bueno espero poder haberte ayudado en algo puedes consultar mas en el manual de mysql

http://dev.mysql.com/doc/refman/5.0/es/triggers.html
  #4 (permalink)  
Antiguo 16/10/2008, 08:07
 
Fecha de Ingreso: octubre-2008
Mensajes: 67
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: enviar registros de una tabla a un campo de otra tabla

hola Snd234 y K-SuMa gracias por respònder a mi duda bueno les muestro lo que hice

CREATE TRIGGER prueba AFTER INSERT ON td_persona
FOR EACH ROW
BEGIN
INSERT INTO ts_auditoria(pers_id,perf_id,audi_ip,audi_fecha,au di_tabla,audi_campo,audi_valor_anterior,audi_valor _actual) VALUES((SELECT MAX(pers_id) AS pers_id FROM td_persona),(SELECT MAX(inst_id) AS inst_id FROM td_persona),1,(SELECT (DATE_FORMAT(CURDATE(),'%d/%m/%y')))',1,1,1,1);
END;

bueno ingreso los registros de td_persona y los llevo a td_auditoria bueno logro enviar estos registros a algunos campos pero me ocurrio un problema no puedo hacer una consulta o subconsulta en los campos que esta con el numero 1 que en este caso serian los campos

audi_ip, audi_campo, audi_valor_anterior, audi_valor_actual en estos campos tienen que ir los registros que se hagan en la tabla td_persona


espero se entienda y gracias por su ayuda
  #5 (permalink)  
Antiguo 22/10/2008, 06:57
Avatar de Snd234  
Fecha de Ingreso: mayo-2007
Ubicación: Frente al PC
Mensajes: 413
Antigüedad: 17 años
Puntos: 2
Respuesta: enviar registros de una tabla a un campo de otra tabla

Te estas complicando mucho. K-SuMa te dio la solución, en vez de utilizar las sub consultas para obtener los códigos de los registros enviados utiliza la palabra NEW, que hace referencia al nuevo registro que se esta insertando, entonces con NEW.algo obtengo el valor especifico del nuevo campo
__________________
KIBIT.cl
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 08:18.