以下是我错误的打印信息:
mysql> ALTER TABLE Price DROP FOREIGN KEY Id
ERROR 1025 (HY000): Error on rename of '.\testdb\Price' to '.\t
estdb\#sql2-bcc-16' (errno: 152)
我已经阅读了这个页面,它建议问题可能是由于以前的alter table错误留下的残留表所致,并建议您在数据目录中搜索并删除任何名称为“B-xxx.frm”的表。 我的错误类似于此,但在我的数据目录中没有“#sql2-bcc-16”。而且无论如何也不会有以前失败的alter table的任何剩余物,因为这只是一个小测试数据库,我以前没有实际更改过任何表。
编辑:以下是更多信息。
我真正想做的是将另一张表中的Id(主键)更改为SMALLINT(而不是TINYINT)。但是,此Phone表的Id是一个外键,引用其他表中的Id。因此,我相信我需要在继续处理主表中的类型更改之前删除此表的外键。我希望这很清楚。
编辑2:桌子。
Sale-具有Id TINYINT NOT NULL,PRIMARY KEY(Id)
Phone-具有Id TINYINT NOT NULL,FOREIGN KEY(Id)REFERENCES Sale(Id)
我希望我的数据库中所有Id都是SMALLINT而不是TINYINT。那是我当前的情况。