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

Como saber si una clave primaria existe antes de insertar datos?

Estas en el tema de Como saber si una clave primaria existe antes de insertar datos? en el foro de PostgreSQL en Foros del Web. Buenas aMIGOS EL inconveniente que estoy presentando es el escrito en el titulo quisiera saber como puedo hacer para antes de ingresar un dato corroborar ...
  #1 (permalink)  
Antiguo 15/03/2010, 12:23
Avatar de HaroldV  
Fecha de Ingreso: enero-2010
Ubicación: Maracaibo
Mensajes: 100
Antigüedad: 14 años, 2 meses
Puntos: 3
Como saber si una clave primaria existe antes de insertar datos?

Buenas aMIGOS EL inconveniente que estoy presentando es el escrito en el titulo quisiera saber como puedo hacer para antes de ingresar un dato corroborar si la clave primaria existe, por que si existe en este caso tendria que hacer un Update para ingresar el valor que quiero en esa clave primaria y de no estar entoncs que esta se cree alguien podria ayudarme en esto ? Gracias
  #2 (permalink)  
Antiguo 15/03/2010, 12:47
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 1 mes
Puntos: 360
Respuesta: Como saber si una clave primaria existe antes de insertar datos?

hola haroldV
Eso lo debes validar desde la aplicación haciendo previamente un select a la tabla.

Código SQL:
Ver original
  1. SELECT COUNT(*) FROM tabla WHERE id=idaingresar;

Si el count es 1 o mas de 1, el dato ya existe y puedes proceder a ejecutar un update.

Si el count es 0, puedes ejecutar sin problemas el insert.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 15/03/2010, 13:00
Avatar de HaroldV  
Fecha de Ingreso: enero-2010
Ubicación: Maracaibo
Mensajes: 100
Antigüedad: 14 años, 2 meses
Puntos: 3
Respuesta: Como saber si una clave primaria existe antes de insertar datos?

Cita:
Iniciado por huesos52 Ver Mensaje
hola haroldV
Eso lo debes validar desde la aplicación haciendo previamente un select a la tabla.

Código SQL:
Ver original
  1. SELECT COUNT(*) FROM tabla WHERE id=idaingresar;

Si el count es 1 o mas de 1, el dato ya existe y puedes proceder a ejecutar un update.

Si el count es 0, puedes ejecutar sin problemas el insert.

saludos

dejame ver si entendi realizo una funcion que tenga ese query verdad para corroborar y si me devuelve 0 quiere decir que no existe y si llegac a existir me enviaria un numero verdad y apartir de alli de que me envie un numero prosigo a crear el update =) me explique bien ?
  #4 (permalink)  
Antiguo 15/03/2010, 13:08
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 1 mes
Puntos: 360
Respuesta: Como saber si una clave primaria existe antes de insertar datos?

Exacto.

Te pongo un ejemplo.

Con esta tabla

Código SQL:
Ver original
  1. pruebas=> SELECT *FROM tabla1 ORDER BY nov_id;
  2.  nov_id |        nov_fecha        |    reporte
  3. --------+-------------------------+---------------
  4.       1 | 2009-03-24 15:34:51.468 | daniel
  5.       2 | 2009-03-24 15:34:54.515 | daniela
  6.       3 | 2009-03-24 15:34:56.359 | otros
  7.       4 | 2009-03-24 15:34:58.062 | daiana
  8.       6 | 2009-05-26 08:36:04.156 | danielito
  9.       7 | 2009-09-08 09:49:06.156 | cßrlos
  10.       8 | 2009-09-08 09:49:20.656 | nore±a
  11.       9 | 2009-09-08 09:50:50.312 | cßrlos
  12.      10 | 2009-09-08 09:56:15.046 | cßrlos
  13.      11 | 2009-09-08 09:57:54.39  | daniel
  14.      12 | 2009-09-08 10:06:51.765 | d┬ñniel
  15.      14 | 2009-09-08 10:12:29.281 | repli┬ñaci┬ón
  16. (12 filas)

Si vas a validar el registro 14.

Código SQL:
Ver original
  1. pruebas=> SELECT COUNT(*) FROM tabla1 WHERE nov_id=14;
  2.  COUNT
  3. -------
  4.      1
  5. (1 fila)

Quiere decir que ya existe. Se procede a realizar el update.

Pero si validamos el 15.

Código SQL:
Ver original
  1. pruebas=> SELECT COUNT(*) FROM tabla1 WHERE nov_id=15;
  2.  COUNT
  3. -------
  4.      0
  5. (1 fila)

No existe. Así que se puede proceder a insertar el registro.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 16/03/2010, 11:12
Avatar de HaroldV  
Fecha de Ingreso: enero-2010
Ubicación: Maracaibo
Mensajes: 100
Antigüedad: 14 años, 2 meses
Puntos: 3
Respuesta: Como saber si una clave primaria existe antes de insertar datos?

Cita:
Iniciado por huesos52 Ver Mensaje
Exacto.

Te pongo un ejemplo.

Con esta tabla

Código SQL:
Ver original
  1. pruebas=> SELECT *FROM tabla1 ORDER BY nov_id;
  2.  nov_id |        nov_fecha        |    reporte
  3. --------+-------------------------+---------------
  4.       1 | 2009-03-24 15:34:51.468 | daniel
  5.       2 | 2009-03-24 15:34:54.515 | daniela
  6.       3 | 2009-03-24 15:34:56.359 | otros
  7.       4 | 2009-03-24 15:34:58.062 | daiana
  8.       6 | 2009-05-26 08:36:04.156 | danielito
  9.       7 | 2009-09-08 09:49:06.156 | cßrlos
  10.       8 | 2009-09-08 09:49:20.656 | nore±a
  11.       9 | 2009-09-08 09:50:50.312 | cßrlos
  12.      10 | 2009-09-08 09:56:15.046 | cßrlos
  13.      11 | 2009-09-08 09:57:54.39  | daniel
  14.      12 | 2009-09-08 10:06:51.765 | d┬ñniel
  15.      14 | 2009-09-08 10:12:29.281 | repli┬ñaci┬ón
  16. (12 filas)

Si vas a validar el registro 14.

Código SQL:
Ver original
  1. pruebas=> SELECT COUNT(*) FROM tabla1 WHERE nov_id=14;
  2.  COUNT
  3. -------
  4.      1
  5. (1 fila)

Quiere decir que ya existe. Se procede a realizar el update.

Pero si validamos el 15.

Código SQL:
Ver original
  1. pruebas=> SELECT COUNT(*) FROM tabla1 WHERE nov_id=15;
  2.  COUNT
  3. -------
  4.      0
  5. (1 fila)

No existe. Así que se puede proceder a insertar el registro.

saludos
TE LO ENTIENDO PERFECTAMENTE PERO EN JAVA ENTONCS IRIA ALGO ASI:
Código:
try {
         
   stmt = conex.createStatement();
            ResultSet rst = stmt.executeQuery("SELECT count(fecha) FROM humedad WHERE id= " +fecha);
            
            if (!rst.next()){
                System.out.println("LA FECHA EXISTE");
        
            }else{
                System.out.println("LA FECHA NOOOOOOOOOO EXISTE");
            }
        } catch (SQLException ex) {
            Logger.getLogger(BaseDatos.class.getName()).log(Level.SEVERE, null, ex);
        }
SI ME ESTOY EQUIVOCANDO EN ALGO TE AGRADECERIA QUE ME LO EXPRESARAS =)
  #6 (permalink)  
Antiguo 16/03/2010, 12:16
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 1 mes
Puntos: 360
Respuesta: Como saber si una clave primaria existe antes de insertar datos?

No recuerdo mucho la sintaxis de java, pero la lógica está bien.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming

Etiquetas: clave, existe, primaria
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:26.