intendo che la "logica" deve essere ben strutturata e verificata... con le funzioni di escape controlli la sintassi (es.: che non siano inseriti caratteri "cattivi" come doppi apici, "%", etc.), ma se tu prevedi che un campo di una tabella debba essere univoco, ma non metti alcuni vincolo e non fai alcun controllo, chiaramente il sistema può collassare semplicemente inserendo un dato già presente.