Najprawdopodobniej masz już ograniczenie o nazwie iduser
lub idcategory
w Twojej bazie danych. Po prostu zmień nazwy ograniczeń, jeśli tak.
Ograniczenia muszą być unikalne dla całej bazy danych, a nie tylko dla określonej tabeli, którą tworzysz/zmieniasz.
Aby dowiedzieć się, gdzie ograniczenia są aktualnie używane, możesz użyć następującego zapytania:
SELECT `TABLE_SCHEMA`, `TABLE_NAME`
FROM `information_schema`.`KEY_COLUMN_USAGE`
WHERE `CONSTRAINT_NAME` IN ('iduser', 'idcategory');