O mais provável é que você já tenha uma restrição com o nome
iduser
ou idcategory
em seu banco de dados. Basta renomear as restrições, se for o caso. As restrições devem ser exclusivas para todo o banco de dados, não apenas para a tabela específica que você está criando/alterando.
Para descobrir onde as restrições estão atualmente em uso, você pode usar a seguinte consulta:
SELECT `TABLE_SCHEMA`, `TABLE_NAME`
FROM `information_schema`.`KEY_COLUMN_USAGE`
WHERE `CONSTRAINT_NAME` IN ('iduser', 'idcategory');