古いシステムから新しいシステムを開発しています。新しいシステムは 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;
できれば1つのコマンドを発行したいと思います
DROP TABLE `Y`
そしてユーザーテーブルで
- 制約を削除します
USER_FK_sourceYID
- 列を削除します
sourceYID
- KEY/INDEX 定義が含まれている場合は、それに基づいてすべて削除します
sourceYID
(この例には含まれていません)。