我正在从旧系统开发一个新系统。新系统使用MySQL和Java。我想从少量的表开始。如果我删除一个名为X的表,如何使所有引用X的内容也被删除,因此如果表Y具有对表X的外键,则在表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
- 如果有的话,也一并移除基于
sourceYID
的任何键/索引定义(此示例中未包含)