一個外鍵表這是在MySQL我的SQL代碼:我不能修改其他表有它在MySQL
create table Table1
(
id varchar(2),
name varchar(2),
PRIMARY KEY (id)
);
Create table Table1_Addr
(
addid varchar(2),
Address varchar(2),
PRIMARY KEY (addid)
);
Create table Table1_sal
(
salid varchar(2),
addid varchar(2),
id varchar(2),
PRIMARY KEY (salid),
index(addid),
index(id),
FOREIGN KEY (addid) REFERENCES Table1_Addr(addid),
FOREIGN KEY (id) REFERENCES Table1(id)
)
表1和Table1_Addr是Table1_sal有兩個外鍵,這兩個兩個表表。
我的問題是,我不能改變表1的id字段和Table1_Addr的ADDID領域
的錯誤是:
#1451 - Cannot delete or update a parent row: a foreign key constraint
fails (`avl`.`table1_sal`, CONSTRAINT `table1_sal_ibfk_2` FOREIGN KEY (`id`)
REFERENCES `table1` (`id`))
編輯,答案是:
create table Table1
(
id varchar(2),
name varchar(2),
PRIMARY KEY (id)
);
Create table Table1_Addr
(
addid varchar(2),
Address varchar(2),
PRIMARY KEY (addid)
);
Create table Table1_sal
(
salid varchar(2),
addid varchar(2),
id varchar(2),
PRIMARY KEY (salid),
index(addid),
index(id),
FOREIGN KEY (addid) REFERENCES Table1_Addr(addid)ON UPDATE CASCADE ON DELETE CASCADE,
FOREIGN KEY (id) REFERENCES Table1(id)ON UPDATE CASCADE ON DELETE CASCADE
)
這就是外鍵的全部要點。它們阻止您創建(或導致)「孤兒」記錄。無論你正在做什麼更新都會導致記錄成爲孤兒,因此查詢被拒絕。 – 2015-02-09 15:07:19
我該如何解決這個問題?我有另一種方法嗎? – UserMat 2015-02-09 15:09:09
需要解決什麼問題?無論是遠程外鍵,所以你可以創建你想要的所有孤兒,或不刪除/更新任何記錄造成這種情況。 – 2015-02-09 15:10:33