sql >> Database >  >> RDS >> Mysql

Is het mogelijk om de ongeldige waarde in MySQL te vangen wanneer ik een externe sleutelbeperkingsfout krijg?

Helaas is er geen betere manier om de Foreign Key-fouten te krijgen dan met de LATEST FOREIGN KEY ERROR sectie in SHOW ENGINE INNODB STATUS . De kolominformatie wordt afgedrukt als bijvoorbeeld:

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

Dit is het afdrukken van de volledige set kolommen uit de index (fk ), en zoals je al geraden had, is het formaat:

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

Verder weet InnoDB helaas niet genoeg over hoe de kolomtypen van MySQL worden opgeslagen om u een redelijke gedrukte weergave te geven, dus sommige waarden zijn een beetje "raar", b.v. 80000003 is de hexadecimale weergave van de bytes die zijn opgeslagen voor het gehele getal 3 (InnoDB draait intern de hoge bit om).




  1. kan oci8 niet laden -> Fatale fout:oproep naar ongedefinieerde functie oci_connect()

  2. tabellen overslaan bij het uitvoeren van Doctrine convert-mapping

  3. 7 goede technische gewoonten die alle werkgevers zouden moeten aannemen

  4. TSQL PIVOT MEERDERE KOLOMMEN