2012-02-29 35 views
15

Tôi cảm thấy như tôi đang ngu ngốc, nhưng tôi không thể tìm thấy bất cứ nơi nào trên giao diện phpMyAdmin để thêm ràng buộc vào các khóa ngoại, ví dụ: CASCADE ON DELETEThêm các ràng buộc trong phpMyAdmin

Tôi đã tìm các câu hỏi tương tự ở đây và trên phpMyAdmin wiki nhưng tôi không thể tìm thấy bất kỳ điều gì về nó.

Tôi nhận ra mình có thể thực hiện điều này thông qua giao diện truy vấn, nhưng tôi muốn biết cách thực hiện thông qua giao diện đồ họa.

+0

có thể trùng lặp của [Thiết lập khóa ngoại trong phpMyAdmin?] (Http://stackoverflow.com/questions/459312/setting-up-foreign-keys-in-phpmyadmin) –

+1

Tôi đã tìm thấy điều đó và nó đã không ' t đã giúp. Vấn đề được giải quyết ngay bây giờ. – Alex

+0

Ồ, vâng, cả hai bảng (một trong số đó có FK và một bảng được tham chiếu phải là InnoDB, hoặc trong một công cụ giao dịch khác). –

Trả lời

30

Trước tiên, bạn nên có công cụ lưu trữ của mình là InnoDB. Sau đó chọn một bảng và chuyển đến tab 'Cấu trúc'.

Trong bảng, bạn sẽ thấy 'Chế độ xem quan hệ', nhấp vào đó. Từ đó bạn có thể thêm các ràng buộc.

+0

Ah cảm ơn, công cụ lưu trữ đã được đặt sai đó là lý do tại sao tôi không thể thêm các ràng buộc. – Alex

+0

Bạn là welocme, Alex. Mừng vì tôi có thể giúp. – utsikko

+0

Tôi thấy '+ Chỉ mục' và không có 'Chế độ xem quan hệ'. Xin vui lòng giúp đỡ trong việc thiết lập các hạn chế ngoại khóa. –

7

CASCADE

Bất cứ khi nào hàng trong tổng thể bảng (tham chiếu) sẽ bị xóa (resp. Cập nhật), các hàng tương ứng của đứa trẻ (tham khảo) bảng với một phù hợp với cột chính nước ngoài sẽ được xóa (resp. cập nhật) là tốt. Điều này được gọi là xóa tầng (resp. Update [2]).

GIỚI HẠN

Một giá trị không thể cập nhật hoặc xóa khi một hàng tồn tại trong một bảng khóa ngoại tham chiếu đến các giá trị trong bảng tham chiếu. Tương tự, một hàng không thể bị xóa miễn là có một tham chiếu đến nó từ một bảng khóa ngoài.

KHÔNG HÀNH ĐỘNG

KHÔNG HÀNH ĐỘNG và RESTRICT rất giống nhau. Sự khác biệt chính giữa NO ACTION và RESTRICT là với NO ACTION, kiểm tra tính toàn vẹn tham chiếu được thực hiện sau khi cố gắng thay đổi bảng. RESTRICT thực hiện kiểm tra trước khi cố gắng thực thi câu lệnh UPDATE hoặc DELETE. Cả hai hành động tham chiếu đều giống nhau nếu kiểm tra tính toàn vẹn tham chiếu thất bại: câu lệnh UPDATE hoặc DELETE sẽ dẫn đến lỗi.

SET NULL

Các giá trị khóa ngoại trong hàng tham khảo được thiết lập để NULL khi hàng tham chiếu được cập nhật hoặc xóa. Điều này chỉ có thể xảy ra nếu các cột tương ứng trong bảng tham chiếu là nullable. Do ngữ nghĩa của NULL, một hàng tham chiếu với NULL trong cột khóa ngoài không yêu cầu hàng được tham chiếu.

Các vấn đề liên quan