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

Insertar o sustituir un campo

Estas en el tema de Insertar o sustituir un campo en el foro de Bases de Datos General en Foros del Web. Hola, como se puede hacer para que MySQL inserte el registro o sí ya existe uno con la misma clave principal lo sustituya?? He probado ...
  #1 (permalink)  
Antiguo 22/02/2005, 11:03
Avatar de Hurgui  
Fecha de Ingreso: febrero-2003
Ubicación: Madrid
Mensajes: 360
Antigüedad: 21 años, 9 meses
Puntos: 0
Pregunta Insertar o sustituir un campo

Hola, como se puede hacer para que MySQL inserte el registro o sí ya existe uno con la misma clave principal lo sustituya??

He probado con

INSERT OR REPLACE INTO proyectos (numero, curso.....

y no me funciona.

MUCHAS GRACIAS
  #2 (permalink)  
Antiguo 23/02/2005, 08:42
Avatar de Hurgui  
Fecha de Ingreso: febrero-2003
Ubicación: Madrid
Mensajes: 360
Antigüedad: 21 años, 9 meses
Puntos: 0
Voy a explicarme mejor, porque creo que no se ha entendido.

Supongamos que tengo un formulario que te pide un identificador (clave primaria) y una frase.

La tabla será

Código:
ID | FRASE
1  | Hola
2  | Adios
3  | En un lugar de la mancha
Como puedo hacer para que si alguien quiere insertar
Código:
4   | Es un nuevo registro
se inserte correctamente

Y si alguien quiere insertar
Código:
3  | Lo he modificado
también se inserte correctamente.

Con mi sentencia actual del tipo INSERT INTO no logro que sustituya al anterior campo en el caso de que ya exista.

Seguro que se tiene que poder.

MUCHAS GRACIAS
  #3 (permalink)  
Antiguo 23/02/2005, 09:05
 
Fecha de Ingreso: febrero-2005
Ubicación: Guadalajara
Mensajes: 2
Antigüedad: 19 años, 9 meses
Puntos: 0
Hola Hurgui,

Lo que yo hago en estos casos primero antes de insertar el registro
es verificar si ya existe utilizando select.
Si existe actualizo FRASE donde ID es igual. (update)
Si no existe inserto (INSERT INTO)
  #4 (permalink)  
Antiguo 23/02/2005, 10:27
Avatar de Hurgui  
Fecha de Ingreso: febrero-2003
Ubicación: Madrid
Mensajes: 360
Antigüedad: 21 años, 9 meses
Puntos: 0
Gracias, pero mi idea era evitarme esa consulta, pero lo haré como me comentas, muchas gracias!

SALUDOS
  #5 (permalink)  
Antiguo 23/02/2005, 10:29
Avatar de Vice  
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 21 años, 3 meses
Puntos: 2
Si el primer campo es la clave primaria, lo único que tienes que hacer es un replace, en lugar del insert. La sintaxis es la misma, salvo que cambias la palabra insert por replace.
Un saludo.
__________________
Estoy contagiado de Generación-I
  #6 (permalink)  
Antiguo 23/02/2005, 11:03
Avatar de Hurgui  
Fecha de Ingreso: febrero-2003
Ubicación: Madrid
Mensajes: 360
Antigüedad: 21 años, 9 meses
Puntos: 0
Eso era lo que quería, ya imaginaba yo que habría una función específica, gracias.

SALUDOS
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 23:13.