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

Trong MySQL, tôi có thể trì hoãn kiểm tra tính toàn vẹn tham chiếu cho đến khi cam kết không

Có vẻ như câu trả lời của tôi là đây ...

Giống như MySQL nói chung, trong một câu lệnh SQL chèn, xóa hoặc cập nhật nhiều hàng, InnoDB kiểm tra các ràng buộc UNIQUE và FOREIGN KEY từng hàng một. Khi thực hiện kiểm tra khóa ngoại, InnoDB đặt các khóa cấp độ hàng được chia sẻ trên các bản ghi con hoặc bản ghi mẹ mà nó phải xem xét. InnoDB kiểm tra các ràng buộc khóa ngoại ngay lập tức; séc không bị trì hoãn đối với cam kết giao dịch. Theo tiêu chuẩn SQL, hành vi mặc định nên được hoãn lại kiểm tra. Nghĩa là, các ràng buộc chỉ được kiểm tra sau khi toàn bộ câu lệnh SQL đã được xử lý. Cho đến khi InnoDB triển khai kiểm tra ràng buộc hoãn lại, một số điều sẽ không thể thực hiện được, chẳng hạn như xóa bản ghi tham chiếu đến chính nó bằng cách sử dụng khóa ngoại.

Quay lại bảng vẽ.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Số hàng mỗi nhóm trong mysql

  2. Chức năng xếp hạng trong MySQL

  3. Làm cách nào để bỏ qua các cột trong tệp CSV khi nhập vào bảng MySQL bằng LOAD DATA INFILE?

  4. SQL chỉ chọn các hàng có giá trị tối đa trên một cột

  5. Trả lại Ngày, Tháng và Năm trong MySQL