[supersaibal]Originariamente inviato da LonelyWolf
Dico strano xkè non riesco a capire dove sta il problema, quindi vengo subito al punto.

La tabella:
id int(11)
data varchar(10)
ora varchar(5)
motivo varchar(30)
inserimento timestamp(14)
visto char(1)

La chiave è inserimento, generato automaticamente quando vbiene inserito un record.

L'update consiste nell'aggiornare il campo visto da 0 a 1.

Se c'è da aggiornare solo una riga tutto fila liscio, se sono 2 o + ottengo l'aggiornamento di una riga e poi l'errore: impossibile aggiornare valore duplicato della chiave.

La chiave è unica l'update è:

update nobadge set visto='1' where inserimento<$limite and visto ='0';

$limite viene generato nel momento in cui si visualizza la pagina con l'elenco della tabella. [/supersaibal]
Il valore temporale viene letto una sola volta per ogni query e applicato a tutte le righe che si inseriscono. Quindi se hai una chiave unica o primaria su timestamp non puoi utilizzare un inserimento/update multiplo e a volte neanche singolo ripetuto immediatamente perche' potrebbe beccare lo stesso secondo.

Soluzione? non si deve usare una chiave primaria o unica per quel campo, perche' non puo' rispondere sempre al requisito di unicita'. Ecco perche' esiste un id numerico autoincrement....