Thật không may, không có cách nào tốt hơn để lấy lỗi khóa ngoại hơn là từ LATEST FOREIGN KEY ERROR
trong SHOW ENGINE INNODB STATUS
. Thông tin cột được in dưới dạng ví dụ:
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 ;;
Thao tác này đang in toàn bộ các cột từ chỉ mục (fk
), và như bạn đoán định dạng là:
<column index>:
len <length of bytes stored>;
hex <hex representation of bytes>;
asc <ascii representation of bytes>;;
Thật không may, InnoDB không biết đủ về cách các loại cột của MySQL được lưu trữ để cung cấp cho bạn một biểu diễn in hợp lý, vì vậy một số giá trị hơi "kỳ lạ", ví dụ:80000003
là biểu diễn hex của các byte được lưu trữ cho số nguyên 3 (InnoDB lật bên trong bit cao).