Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-09-2005
bustio bustio is offline
Miembro
 
Registrado: oct 2003
Posts: 231
Poder: 21
bustio Va por buen camino
dudas Insert If Not Exist

Hola:
Tengo una pequenna gran duda: Tengo una tabla en MySQL que contiene ciertas tuplas, y una de ellas son los datos de una persona incluyendo su numero de ID. Mi aplicacion registra personas, y lo hace por el Numero de ID propiamente. Entonces, yo necesito insertar una nueva tupla con todos sus datos si esta no esta ya insertada.

Pense en hacer algo asi:
[MySQL]INSERT IF NOT EXIST INTO personas(noci,nombre.. etc) VALUES (xxxxx)[/MySQL] pero no me funciona, me da error.
Alguien podria indicarme cual es el error y la manera correcta de lograr este resultado?
__________________
Muchas Gracias...
Responder Con Cita
  #2  
Antiguo 29-09-2005
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
No trabajo con MySql, pero una solución sería lanzar una consulta SQL buscando dicho código, si te devuelve registros, entonces existe y con un simple If te saltas el insert.....

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 07-08-2007
Miguel Galarza Miguel Galarza is offline
Miembro
 
Registrado: jul 2004
Posts: 16
Poder: 0
Miguel Galarza Va por buen camino
Para dejarlo completo

aunque fuera de tiempo es para que si alguno lo necesita pongo esto. TEngo una tabla de mis clientes y como los datos son ingresados de una importacion externa no se quienes tienen asignada clave para acceder desde la web, hace una insercion de los datos que NO EXISTAN en la tabla a actualizar

INSERT INTO PadronC(IDContribuyente, CUIT, Verificado, Clave)
SELECT t1.IDContribuyente, t1.CUIT, 'N' , t1.IDContribuyente FROM
Padron t1 where NOT EXISTS(SELECT t.IDContribuyente from PadronC t WHERE t.IDContribuyente=t1.IDContribuyente)
Responder Con Cita
  #4  
Antiguo 07-08-2007
Avatar de papulo
papulo papulo is offline
Miembro
 
Registrado: ago 2005
Ubicación: Lleida - Cataluña - España -Europa - Planeta tierra - Sistema solar - Via Lactea ...
Posts: 542
Poder: 19
papulo Va por buen camino
Primero averigua si existe o no ese ID con una consulta "select X from Y where ID=123442" y luego haz un UPDATE o un INSERT, dependiendo del resultado de la primera consulta.

Yo al menos lo haría así.
__________________
"El aprendizaje potencia la intuición"
Yo mismo, en un momento de inspiración. v2.0
Responder Con Cita
  #5  
Antiguo 07-08-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
En MySQL se puede usar

Código SQL [-]
insert ignore into tabla
.....

Con esta opción, si el registro que va a insertarse repetiría una llave, entonces no se inserta y no genera error.

También, MySQL tiene la opción INSERT ... ON DUPLICATE o bien la sentencia REPLACE que permite, en caso de llave repetida, actualizar los otros campos.

// Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 01:49:13.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi