Tôi có hai bảng trong MySQL database- parent
, child
. Tôi đang cố gắng thêm các tham chiếu khóa ngoại vào bảng con của mình dựa trên bảng cha. Có sự khác biệt đáng kể nào giữa ON UPDATE CASCADE
vàON DELETE CASCADE
Bảng phụ huynh của tôi
CREATE TABLE parent (
id INT NOT NULL,
PRIMARY KEY (id)
) ENGINE=INNODB;
Câu hỏi của tôi là: sự khác biệt giữa các truy vấn sql sau đây là gì.
ON DELETE CASCADE
CREATE TABLE child ( id INT, parent_id INT, INDEX par_ind (parent_id), FOREIGN KEY (parent_id) REFERENCES parent(id) ON DELETE CASCADE ) ENGINE=INNODB;
ON UPDATE CASCADE
CREATE TABLE child ( id INT, parent_id INT, INDEX par_ind (parent_id), FOREIGN KEY (parent_id) REFERENCES parent(id) ON UPDATE CASCADE ) ENGINE=INNODB;
ON UPDATE CASCADE ON DELETE CASCADE
CREATE TABLE child ( id INT, parent_id INT, INDEX par_ind (parent_id), FOREIGN KEY (parent_id) REFERENCES parent(id) ON UPDATE CASCADE ON DELETE CASCADE ) ENGINE=INNODB;
Có bất kỳ lỗi trong các truy vấn? Những truy vấn này (1,2 & 3) nghĩa là gì ?? Họ có giống nhau không ???