Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Czy możliwe jest przechwycenie nieprawidłowej wartości w MySQL, gdy pojawia się błąd ograniczenia klucza obcego?

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).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zaimportować plik sql do bazy danych ignorując X wierszy w pliku?

  2. Czy istnieje sposób na obliczenie powtarzających się obliczeń tylko raz w sql?

  3. Jak grupować według miesięcy w MySQL

  4. zapytanie pobierania mysql w Pythonie

  5. PHP PDO tylko ostatnia wartość tablicy zostanie wstawiona za pomocą bindValue i bindParam