MySQL - insertar o actualizar registro en una misma tabla

 
Vista:
sin imagen de perfil
Val: 2
Ha aumentado su posición en 22 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

insertar o actualizar registro en una misma tabla

Publicado por Y3rs3Y (1 intervención) el 12/02/2021 19:49:47
Buenas tardes necesito ingresar o actualizar una tabla segun si existe o no el registro doy los ejemplos

TABLA COSTOS

CodigoProducto-------------CodigoProveedor---------Costo---------------------FechaUltimaActualizacion
0000123-----------------------123456-----------------------5.45-----------------------12-01-2021
0000234-----------------------739485-----------------------6.32-----------------------10-02-2021
0000654-----------------------444444-----------------------1.34-----------------------13-01-2021
0000654-----------------------111111-----------------------0.00-----------------------00-00-0000
0000987-----------------------654534-----------------------2.12-----------------------15-01-2020
0000987-----------------------111111-----------------------0.00-----------------------00-00-0000
0000987-----------------------983465-----------------------5.67-----------------------12-01-2021

el proveedor 111111 debe existir con todos los productos con el costo que tenga fecha de actualizacion mas actual
resultado como tiene que quedar


CodigoProducto------------CodigoProveedor---------Costo----------------------FechaUltimaActualizacion
0000123----------------------123456-----------------------5.45-----------------------12-01-2021
0000123----------------------111111-----------------------5.45-----------------------12-01-2021
0000234----------------------739485-----------------------6.32-----------------------10-02-2021
0000234----------------------111111-----------------------6.32-----------------------10-02-2021
0000654----------------------444444-----------------------1.34-----------------------13-01-2021
0000654----------------------111111-----------------------1.34-----------------------13-01-2021
0000987----------------------654534-----------------------2.12-----------------------15-01-2020
0000987----------------------983465-----------------------5.67-----------------------12-01-2021
0000987----------------------111111-----------------------2.12-----------------------15-01-2020


agradeceria mucho que me pudieran asesosar por donde puedo comenzar si hacer un query o un proceso almacenado que variables usar.
estoy perdido en esto.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

insertar o actualizar registro en una misma tabla

Publicado por anonymous (59 intervenciones) el 12/02/2021 22:32:05
El control sobre que hacer si un insert o un update depende de si el registro existe o no, idealmente un procedimiento almacenado que te reciba como parámetros de tipo IN CodigoProducto, CodigoProveedor y Costo

La fecha supongo es en la que se realiza la actualización, esa debe tener un default timestamp en la tabla para que sea la propia BD quien la coloque, esa no hay que enviarla al procedimiento.

Luego que el procedimiento reciba los parámetros, se hace un select buscando ese CodigoProducto, de hallarle actualiza, en caso contrario realiza un insert de un nuevo registro
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Ferney
Val: 21
Ha disminuido 1 puesto en MySQL (en relación al último mes)
Gráfica de MySQL

insertar o actualizar registro en una misma tabla

Publicado por Ferney (11 intervenciones) el 15/02/2021 17:07:00
Hola.
A mi se me ocurre crear un archivo en php sencillo y correrlo, seria algo así:
1. un select de todos los productos.
2. en un while verificar si este producto ya existe por medio de un if, si existe, no hacer nada, si no existe, crearlo.

No se si te pueda ayudar esta información. Buen día.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar