Ver Mensaje Individual
  #2 (permalink)  
Antiguo 26/12/2012, 15:02
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 1 mes
Puntos: 2658
Respuesta: Insert where not exist no funciona

En primer lugar, el WHERE no existe en el INSERT.
En segundo lugar, MySQL no admite (y tampoco otros DBMS) que se consulte la misma tabla que se está insertando.
Si DNI es PK, lo más simple es hacer un INSERT IGNORE:
Código MySQL:
Ver original
  1. INSERT IGNORE INTO Persona (DNI, Nom, Cognom, Contrasenya, Direccio, CP, Ciutat, EMail, Telef)
  2. VALUES('$DNI_entiti', '$Nombre_entiti', '$Apellidos_entiti', MD5('$PSW_entiti'), '$Direccion_entiti', '$CP_entiti', '$Ciudad_entiti', '$Email_entiti', '$Mobil_entiti')
Eso simplemente no generará mensajes de error si el DNI ya existe.
Eso si: para que se cumpla, DNI debe ser la clave primaria.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)