我正在从旧系统开发新系统。新系统使用 MySQL 和 java。我想从减少表格数量开始。当我删除一个表让我们说 X 时,我怎样才能导致对 X 的所有引用也被删除,所以如果表 Y 对表 X 有一个 FK,那么在表 Y 上,FK 和 FK 中使用的列也会被删除?
简化示例:
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`
在用户表上
- 删除约束
USER_FK_sourceYID
- 删除列
sourceYID
- 如果包含,则删除任何 KEY/INDEX 定义
sourceYID
(未包含在此示例中)