sql >> Database teknologi >  >> RDS >> Mysql

Er det muligt at fange den ugyldige værdi i MySQL, når jeg får en fejl med en fremmednøglebegrænsning?

Desværre er der ingen bedre måde at få udenlandsk nøglefejl på end fra LATEST FOREIGN KEY ERROR afsnittet i SHOW ENGINE INNODB STATUS . Kolonneoplysningerne udskrives som f.eks.:

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     ;;
 

Dette udskriver det fulde sæt af kolonner fra indekset (fk ), og som du gættede er formatet:

<column index>: len <length of bytes stored>; hex <hex representation of bytes>; asc <ascii representation of bytes>;;

Ydermere ved InnoDB desværre ikke nok om hvordan MySQL's kolonnetyper er gemt til at give dig en rimelig udskrevet repræsentation, så nogle af værdierne er lidt "underlige" f.eks. 80000003 er hex-repræsentationen af ​​de bytes, der er gemt for hele tallet 3 (InnoDB vender internt den høje bit).




  1. Er enkelte mysql-udsagn atomare i MyISAM og InnoDB?

  2. Forsøger at oprette forbindelse til ekstern MySQL-vært (fejl 2003)

  3. Hvordan deler jeg en streng, så jeg kan få adgang til element x?

  4. MySql vælger dynamiske rækkeværdier som kolonnenavne