Ver Mensaje Individual
  #5 (permalink)  
Antiguo 16/03/2010, 11:12
Avatar de HaroldV
HaroldV
 
Fecha de Ingreso: enero-2010
Ubicación: Maracaibo
Mensajes: 100
Antigüedad: 10 años, 9 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 =)