我正在從舊系統開發一個新系統。新系統使用mysql和java。我想從數量減少的表格開始。當我刪除一個表時,可以說X,我怎樣才能使所有對X的引用都被刪除,所以如果表Y有表X的FK,那麼在表Y上FK和FK中使用的列也會被刪除?mysql drop table and cascade delete to all references to the table
簡化例如:
CREATE TABLE `Y` (
`yID` int(11) NOT NULL AUTO_INCREMENT,
`yName` varchar(50) NOT NULL,
...
) ENGINE=InnoDB;
CREATE TABLE `user` (
`userID` int(11) NOT NULL AUTO_INCREMENT,
`userName` varchar(50) NOT NULL,
`givenName` varchar(50) DEFAULT NULL,
`sourceYID` int(11) NOT NULL,
CONSTRAINT `USER_FK_sourceYID` FOREIGN KEY (`sourceYID`) REFERENCES `Y` (`yID`)
) ENGINE=InnoDB;
我想最好發出一個命令,將
DROP TABLE `Y`
,並在用戶表
remove the CONSTRAINT `USER_FK_sourceYID`
remove the column sourceYID
remove any KEY/INDEX definitions based on sourceYID as well if included (not
included in this example)
我不清楚,在這個階段,我將使用減少的現有數據庫結構,但我已經導出了沒有任何數據的sql文件的轉儲。我希望有一種自動的方法來刪除引用表中的外鍵和外鍵所涉及的列。 – melutovich