create_user INT UNSIGNED ZEROFILL
não pode referenciar id INT
, porque eles contam como tipos de dados diferentes para fins de referência de chave estrangeira. Torne-os do mesmo tipo de dados. A única diferença de tipo de dados que é permitida entre colunas em um relacionamento de chave estrangeira é o comprimento de um varchar. Por exemplo, VARCHAR(10) pode referenciar VARCHAR(20) ou vice-versa.
Qualquer outra diferença no tipo de dados, tamanho ou conjunto de caracteres é incompatível para integridade referencial.
Mesmo tendo
ZEROFILL
em uma coluna, mas não na outra, torna os tipos de dados incompatíveis.