Hãy để chúng tôi hiểu cách MySQL xử lý các ràng buộc -
MySQL giúp chúng tôi làm việc với các bảng giao dịch (cho phép khôi phục) và với các bảng không giao dịch (không cho phép khôi phục). Đây là lý do tại sao việc xử lý các ràng buộc trong MySQL lại khác so với các DBMS khác. Trong cơ sở dữ liệu phi giao dịch, nếu lỗi xảy ra khi chèn hoặc cập nhật nhiều hàng, thì không thể khôi phục hàng. Trường hợp này phải được xử lý đúng cách.
Máy chủ MySQL tạo ra lỗi cho các truy vấn mà nó phát hiện là lỗi khi phân tích cú pháp một câu lệnh cần được thực thi. Khi lỗi đã được phát hiện, nó sẽ cố gắng khôi phục các lỗi trong khi thực hiện câu lệnh. Điều này không được thực hiện cho tất cả các báo cáo kể từ bây giờ.
MySQL có thể dừng câu lệnh giữa chừng hoặc khôi phục từ nó và tiếp tục khi xảy ra lỗi. Theo mặc định, máy chủ sẽ khôi phục và tiếp tục.
Các khóa ngoại cho phép tham chiếu chéo giữa dữ liệu giữa các bảng và các ràng buộc về khóa ngoại giúp đảm bảo rằng dữ liệu dàn trải này vẫn nhất quán.
Tài liệu tham khảo khóa nước ngoài
MySQL hỗ trợ BẬT CẬP NHẬT và BẬT XÓA các tham chiếu khóa ngoại trong câu lệnh CREATE TABLE và ALTER TABLE.
Hành động tham khảo
Các hành động tham chiếu có sẵn là- HẠN CHẾ, CASCADE, ĐẶT ĐẦY ĐỦ và KHÔNG CÓ HÀNH ĐỘNG.
KHÔNG HÀNH ĐỘNG là hành động tham chiếu mặc định.
ENUM
Giá trị ENUM phải là giá trị được liệt kê trong định nghĩa cột hoặc giá trị số bên trong tương đương. Giá trị không được là giá trị lỗi (0 hoặc chuỗi trống). Đối với cột được xác định là ENUM ('a', 'b', 'c'), các giá trị khác 'a', 'b' hoặc ' c ', chẳng hạn như' ',' d 'hoặc' ax 'được coi là không hợp lệ và bị từ chối.