文章

目前顯示的是 六月, 2017的文章

InnoDB 與 FOREIGN KEY

圖片
我們知道要讓兩個資料表有關聯,可以用外鍵(FOREIGN KEY )進行關聯。 【範例一】 CREATE TABLE product ( prod_id INT NOT NULL, prod_name CHAR(20), PRIMARY KEY (prod_id)); CREATE TABLE myorder ( order_id INT NOT NULL, prod_id INT, PRIMARY KEY (order_id)); 上述表單 product 的主鍵是 prod_id ; 表單 myorder 的主鍵是 order_id,並透過外鍵 myorder.prod_id 與product.prod_id做關聯。 然後插入資料 insert into product values (1,'Pen'),(2,'Pencil'),(3,'Box'); insert into myorder values (1,1),(2,2),(3,3); 但是當我們刪除product的資料時 delete from product where prod_id=1; 結果如下 系統根本不知道,prod_id=1這個資料是被另外表單參考的。 所以product中的資料被刪除,myorder.prod_id=1 就參考不到正確的資料了。 【範例二】 所以,我們刪除上面的表單後再另外宣告 CREATE TABLE product ( prod_id INT NOT NULL, prod_name CHAR(20), PRIMARY KEY (prod_id)); CREATE TABLE myorder ( order_id INT NOT NULL, prod_id INT, FOREIGN KEY(prod_id) REFERENCES product(prod_id) ON DELETE CASCADE ON UPDATE CASCADE, PRIMARY KEY (order_id)); 這次宣告了FOREIGN KEY(prod_id) REFERENCES product(prod_i