Niestety nie ma lepszego sposobu na uzyskanie błędów klucza obcego niż z LATEST FOREIGN KEY ERROR
sekcja w SHOW ENGINE INNODB STATUS
. Informacje o kolumnie są drukowane jako np.:
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 ;;
To jest drukowanie pełnego zestawu kolumn z indeksu (fk
) i jak się domyślasz, format to:
<column index>:
len <length of bytes stored>;
hex <hex representation of bytes>;
asc <ascii representation of bytes>;;
Ponadto, niestety, InnoDB nie wie wystarczająco dużo o tym, jak przechowywane są typy kolumn MySQL, aby zapewnić rozsądną reprezentację drukowaną, więc niektóre wartości są nieco „dziwne”, np. 80000003
jest szesnastkową reprezentacją bajtów przechowywanych dla liczby całkowitej 3 (InnoDB wewnętrznie odwraca wysoki bit).