Я использую таблицу для хранения голосов разных пользователей на разных опросах.
Таблица имеет следующую структуру.
id | poll_id | opt | айпи адрес id: auto increment poll_id: (STRING UNIQUE), уникальный для конкретного опроса opt: (STRING), выбранный пользователем ip_address: (STRING UNIQUE) ip-адрес пользователя
Это мой запрос
INSERT OR REPLACE INTO tbl_poll(id,poll_id,opt,ip_addr) VALUES (null,'$poll_id','$opt','$ip_addr')
(Here $poll_id, $opt and $ip_addr are php variables which holds the respective values)
Теперь сценарий выглядит следующим образом:
Пользователь «A» голосует за вариант 2 poll_id «mypoll». Запрос работает отлично. (Вставляет)
Пользователь «А» меняет ум и голосует за вариант 5 poll_id «mypoll». Запрос работает отлично. (Заменяет)
Но если User 'A' голосует за вариант 4 poll_id 'yourpoll'. Запрос завершается с ошибкой (он выполняет замену), но он должен вставить новую запись с помощью poll_id 'yourpoll'
Я думаю, он считает ограничение unqiue
только poll_id
но не poll_id