Sfortunatamente non c'è modo migliore per ottenere gli errori di chiave esterna che da LATEST FOREIGN KEY ERROR
sezione in SHOW ENGINE INNODB STATUS
. Le informazioni sulla colonna vengono stampate come ad esempio:
Trying to add in child table, in index `fk` tuple:
DATA TUPLE: 2 fields;
0: len 11; hex 4163636573736f72794964; asc AccessoryId;;
1: len 4; hex 80000003; asc ;;
Questo sta stampando l'intero set di colonne dall'indice (fk
), e come hai intuito il formato è:
<column index>:
len <length of bytes stored>;
hex <hex representation of bytes>;
asc <ascii representation of bytes>;;
Inoltre, sfortunatamente, InnoDB non sa abbastanza su come vengono archiviati i tipi di colonna di MySQL per darti una rappresentazione stampata ragionevole, quindi alcuni valori sono un po' "strani", ad es. 80000003
è la rappresentazione esadecimale dei byte memorizzati per l'intero 3 (InnoDB capovolge internamente il bit alto).