Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Có thể bắt giá trị không hợp lệ trong MySQL khi tôi gặp lỗi ràng buộc khóa ngoại không?

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




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Truyền dữ liệu SQL Server sang MySQL

  2. Định dạng dấu thời gian SQL bằng PHP

  3. Sử dụng MySQL và Neo4j cùng nhau có phải là một ý tưởng hay không?

  4. Không thể truy cập cơ sở dữ liệu mysql (chạy trên phiên bản AWS) từ ứng dụng java của tôi

  5. StaleObjectStateException cập nhật tần số cao