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

Diferencias entre insert y update

Estas en el tema de Diferencias entre insert y update en el foro de Mysql en Foros del Web. ¿Cuales son las diferencias entre insert y update a la hora de introducir datos en la bd? Me viene la duda por que necesitaba meter ...
  #1 (permalink)  
Antiguo 28/06/2008, 07:24
Avatar de Aimarejada  
Fecha de Ingreso: abril-2006
Mensajes: 207
Antigüedad: 18 años
Puntos: 0
Diferencias entre insert y update

¿Cuales son las diferencias entre insert y update a la hora de introducir datos en la bd?

Me viene la duda por que necesitaba meter en 2 columnas una serie de datos y tenia que ser en cierto registro, es decir que necesito meter en dos campos pertenecientes a un id concreto por lo que necesitaria hacer un Where.
  #2 (permalink)  
Antiguo 28/06/2008, 08:36
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Diferencias entre insert y update

para eso usas UPDATE, que sirve para modificar datos de un registro ya existente. Si quieres añadir un nuevo registro, usas INSERT.

La sintaxis básica de update para cambiar en la tabla tabla1 el dato de campo1 del registro cuyo id es 1 y escribir en él 'loquequieras' sería:

UPDATE tabla1 SET campo1 = 'loquequieras' WHERE id = 1
  #3 (permalink)  
Antiguo 28/06/2008, 12:15
Avatar de Aimarejada  
Fecha de Ingreso: abril-2006
Mensajes: 207
Antigüedad: 18 años
Puntos: 0
Respuesta: Diferencias entre insert y update

Sera para almacenar ips por lo que en el campo ips tendria que almacenar una detras de otra y creo que deberia de usar el insert pero no se como hacer el where para que me discrimine el id.
  #4 (permalink)  
Antiguo 28/06/2008, 12:28
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Diferencias entre insert y update

Pon tus campos y un ejemplo de los datos que quieres incluir en un registro concreto.
No sé, pero parece más bien un problema de estructura de base de datos: ¿las dos IPs van en el mismo registro o no? ¿Por qué tienen que ir en el mismo registro? Explícanos un poco lo que quieres hacer con datos de ejemplo y mencionando los campos que usas, así como lo que quieres hacer luego con esos datos.
  #5 (permalink)  
Antiguo 28/06/2008, 13:08
Avatar de Aimarejada  
Fecha de Ingreso: abril-2006
Mensajes: 207
Antigüedad: 18 años
Puntos: 0
Respuesta: Diferencias entre insert y update

Es para un contador de visitas para articulos, noticias etc por lo que cada articulo, noticia etc tendra sus datos de las visitas en la bd, es decir que tendran guardado en la db el numero de visitas y las ips que han visitado ese contenido.

La organización en la db esta asi:

Tabla lecturas

-ID
-TOTAL
-IPS

Luego ovbiamente tengo mas tablas pero la que interesa es esta.

Osea que cuando haya una visita nueva necesito añadir al campo IPS la ip del visitante, tambien sumar 1 al campo total pero esto lo se hacer.

Dicho esto creo que deberia hacer un insert para añadir al campo IPS la dirección ip pero como tengo que añadirselo al registro que tenga un ID determinado pues no se como hacerlo. Yo diria que es algo como en un SELECTque lo harias asi "... Where id= &nombrevariable" pero en un insert no tengo ni idea.
  #6 (permalink)  
Antiguo 28/06/2008, 14:12
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Diferencias entre insert y update

Cita:
Iniciado por Aimarejada Ver Mensaje
Es para un contador de visitas para articulos, noticias etc por lo que cada articulo, noticia etc tendra sus datos de las visitas en la bd, es decir que tendran guardado en la db el numero de visitas y las ips que han visitado ese contenido.

La organización en la db esta asi:

Tabla lecturas

-ID
-TOTAL
-IPS

Luego ovbiamente tengo mas tablas pero la que interesa es esta.

Osea que cuando haya una visita nueva necesito añadir al campo IPS la ip del visitante, tambien sumar 1 al campo total pero esto lo se hacer.

Dicho esto creo que deberia hacer un insert para añadir al campo IPS la dirección ip pero como tengo que añadirselo al registro que tenga un ID determinado pues no se como hacerlo. Yo diria que es algo como en un SELECTque lo harias asi "... Where id= &nombrevariable" pero en un insert no tengo ni idea.
Creo que deberías probar otra estructura. Me explico: si lo que buscas es llevar la cuenta de las IPS distintas, sin tener en cuenta el número de accesos ni las fechas, te bastará con esto:

idtabla PK autoincrementable
idnoticia numérico, el mismo que el id de la tabla noticia correspondiente a la noticia
IPS dirección IP

cuando entre una nueva IP compruebas primero mediante un select si está en tu tabla (mediante un trigger también podrías hacerlo, creo); si está la IP en la tabla, no haces nada, pero si no está, insertas un nuevo registro con la dirección IP y el id de la noticia.
El total lo podrás hacer fácilmente con un count y group by de esa tabla.

Con esto sólo sacarías el total de IPS y la lista de las mismas, pero no tendrías nada sobre frecuencia de entrada ni fechas... Por ejemplo no sabrías qué IP es la que ha entrado más veces en un determinado mes.
  #7 (permalink)  
Antiguo 28/06/2008, 14:19
Avatar de Aimarejada  
Fecha de Ingreso: abril-2006
Mensajes: 207
Antigüedad: 18 años
Puntos: 0
Respuesta: Diferencias entre insert y update

Asi creo que podria hacerlo sin problemas y no se me habia ocurrido pero no estaria mejor organizado metiendolo todo en un longtext y mediante php sacarlo a un array para comprobar si la ip del visitante ya esta guardada en la bd?

Tu solución me parece buena pero tiene un inconveniente y es que hara que pese mas la db.

Lo de saber la fecha y cuantas veces no importa por que usare las estadisticas de google.
  #8 (permalink)  
Antiguo 29/06/2008, 01:33
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Diferencias entre insert y update

Esa es otra opción, pero yo prefiero que el trabajo lo haga MySQL porque esa es la lógica de almacenamiento de datos en una base. Por otra parte, imagina que quisieras poner las nacionalidades de las IPs y ordenarlas; a partir de esta tabla que te he propuesto y otra con las IPs por países podrías hacerlo fácilmente, pero con ese longtext y el trabajo con arrays tendrías que programar algo más. Por otra parte, la búsqueda de IP dentro de un campo como ese, no sé si será más lenta. No obstante, es tu decisión y tal vez tengas razón.
Bien, para lo que quieres, podrías usar REPLACE. Buscas la IP y si no está dentro del campo longtext la añades así
UPDATE tabla SET campoIP = REPLACE (campoIP, campoIP, CONCAT(campoIP, ' ', 'datonuevaiP'))
No lo he probado y creo que no dará problema con longtext.

Última edición por jurena; 29/06/2008 a las 01:52
  #9 (permalink)  
Antiguo 30/06/2008, 08:13
Avatar de Aimarejada  
Fecha de Ingreso: abril-2006
Mensajes: 207
Antigüedad: 18 años
Puntos: 0
Respuesta: Diferencias entre insert y update

Finalmente lo hice como me recomendastes y funciona todo perfecto gracias!
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 17:50.