Vous obtenez une erreur car
- Le
user_id
la colonne est définie commeNOT NULL
- Le
user_id
la colonne n'a pas de valeur par défaut spécifiée - Vous ne spécifiez pas non plus sa valeur dans votre requête
PS :la question n'a aucun rapport avec la ON DUPLICATE KEY UPDATE
clause - ce serait la même erreur si vous ne l'utilisiez pas également.
PPS :que le ON DUPLICATE KEY UPDATE
déclenché - votre insert
doit satisfaire toutes les contraintes