create_user INT UNSIGNED ZEROFILL
impossibile fare riferimento a id INT
, perché contano come tipi di dati diversi ai fini del riferimento alla chiave esterna. Rendili dello stesso tipo di dati.
L'unica differenza di tipo di dati consentita tra le colonne in una relazione di chiave esterna è la lunghezza di un varchar. Ad esempio, VARCHAR(10) può fare riferimento a VARCHAR(20) o viceversa.
Qualsiasi altra differenza nel tipo di dati, nella dimensione o nel set di caratteri è incompatibile per l'integrità referenziale.
Anche avendo ZEROFILL
su una colonna ma non sull'altra rende i tipi di dati incompatibili.