Ho una tabella utenti_attesa_conferma formata da svariati campi tra cui mail e idUtente, entrambi settati su UNIQUE. Nessuno dei due è una chiave primaria, tuttavia entrambi si suppone che sono univoci e non possono avere duplicati all'interno della stessa tabella.
C'è poi il problema che non posso combinarli tra loro per formare un'unica key in quanto mail e idUtente non sono strettamente collegate, infatti le operazioni che mi serve fare sono:
1) devo controllare l'esistenza della mail, e se esiste devo updatare il campo idUtente
2) se non esiste la mail devo controllare l'esistenza dell'idUtente, se esiste devo updatare il campo Mail
3) se non esiste né la mail né l'idUtente devo inserire i dati in un record del tutto nuovo.
Devo necessariamente fare tre query distinte? La clausola ON DUPLICATE KEY agisce soltanto sulla chiave primaria giusto? Non c'è un qualcosa di analogo che mi permetta di fare l'on duplicate si qualsiasi colonna e conoscere poi quale colonna risulta essere duplicata?

Rispondi quotando