Otrzymujesz błąd, ponieważ
user_id
kolumna jest zdefiniowana jakoNOT NULL
user_id
kolumna nie ma określonej wartości domyślnej- Nie określasz jego wartości w zapytaniu
PS:pytanie nie ma związku z ON DUPLICATE KEY UPDATE
klauzula - byłby to ten sam błąd, gdybyś go również nie użył.
PPS:niezależnie od tego, czy ON DUPLICATE KEY UPDATE
wyzwolony - Twój insert
powinien spełniać wszystkie ograniczenia