这是我的错误的打印:
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)
我已阅读此页面,该页面表明问题可能是由于一些较早的更改表错误导致的剩余表,并建议您在数据目录中窥探并删除任何名称为“B-xxx”的表。框架'。
我的错误与此类似,但我的数据目录中没有“#sql2-bcc-16”。无论如何,以前失败的更改表不会有任何工件,因为这只是一个小型测试数据库,我之前实际上没有更改任何表。
编辑:下面有更多信息。
我真正想做的是将另一个表中的 Id(主键)更改为 SMALLINT(而不是 TINYINT)。但是,这个电话表的 Id 是一个外键,引用另一个表中的 Id。所以,我相信我需要先删除该表的外键,然后再继续主表中的类型更改。我希望这很清楚。
编辑 2:表格。
销售 - 有 Id TINYINT NOT NULL, PRIMARY KEY (Id)
电话 - 有 Id TINYINT NOT NULL, FOREIGN KEY (Id) REFERENCES Sale (Id)
我希望我的数据库中的所有 ID 都是 SMALLINT 而不是 TINYINT。这就是我现在的情况。