[mysql]Duplicate entry 'xxxxx' for key 1

2011-02-18 13:36:38 Post #1 korey

 
Robię licznik odwiedzin i zastanawiam sie jak ustawić pola tak by nie duplikowało mi wpisów. tzn by nie dodawało mi np 3 tary tego samego, a jedynie aktualizowało. UPDATE odpada do sie to jakos inaczej zrobić.? moja tabela wyglada tak:
1
2
3
4
5
CREATE TABLE `goscie_online` (
`ip` varchar(15) NOT NULL default '',
`date` time NOT NULL default '00:00:00',
PRIMARY KEY (`ip`)
) TYPE=MyISAM;


błąd jaki mi wywala gdy odświeżam stronę:
ZAPYTANIE: INSERT INTO `goscie_online` VALUES('94.23.89.25','13:34:28')BŁĄD: Duplicate entry '94.23.89.25' for key 1

2011-02-18 13:46:44 Post #2 nospor

 
Jak zwykle manual
http://dev.mysql.com/doc/refman/5.5/en/insert-on-duplicate.html

2011-02-18 14:04:29 Post #3 korey

 
ech co ja bym bez Ciebie zrobił
zaraz podziele się swoim kodzikiem.

dzięki

2011-02-19 17:08:44 Post #4 Comandeer

 
Jest pewna alternatywa dla insert on duplicate, która moim zdaniem jest ciut wygodniejsza: replace
(http://dev.mysql.com/doc/refman/5.0/en/replace.html). Działa dokładnie tak jak insert, z tym wyjątkiem, że jeśli wpis o danym id istnieje, to zostaje nadpisany.

Odpowiedz