Получавате грешка, защото
user_id
колоната е дефинирана катоNOT NULL
user_id
колоната няма посочена стойност по подразбиране- Вие също не посочвате стойността му в заявката си
PS:въпросът не е от значение за ON DUPLICATE KEY UPDATE
клауза - ще бъде същата грешка, ако не я използвате и вие.
PPS:независимо дали ON DUPLICATE KEY UPDATE
задействано - вашето insert
трябва да отговаря на всички ограничения