Sqlite 3 Вставка и замена не работает на более чем одной уникальной колонке

Я использую таблицу для хранения голосов разных пользователей на разных опросах.

Таблица имеет следующую структуру.

  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