【发布时间】:2012-02-12 22:04:33
【问题描述】:
这是我的错误的打印:
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)
我读过this page ,这表明问题可能是由于早期的一些更改表错误导致的剩余表,并建议您在数据目录中窥探并删除任何名称如“ B-xxx.frm'。
我的错误与此类似,但我的数据目录中没有“#sql2-bcc-16”。无论如何,不会有任何先前失败的更改表的工件,因为这只是一个小型测试数据库,我之前实际上没有更改任何表。
编辑:下面有更多信息。
我真正想做的是将另一个表中的 Id(主键)更改为 SMALLINT(而不是 TINYINT)。但是,这个电话表的 Id 是一个外键,引用另一个表中的 Id。所以,我相信我需要先删除该表的外键,然后再对主表进行类型更改。我希望这很清楚。
编辑 2:表格。
Sale - 有 Id TINYINT NOT NULL, PRIMARY KEY (Id)
电话 - 有 Id TINYINT NOT NULL,外键 (Id) REFERENCES Sale (Id)
我希望我的数据库中的所有 ID 都是 SMALLINT 而不是 TINYINT。这就是我现在的情况。
【问题讨论】:
-
我帖子的顶部一直消失。上面写着“大家好,......” 一个名叫“thinksteep”的人一直在编辑我的帖子。
-
我相信 Id 是另一个表中的主键...对吗?
-
法希姆 - 正确!我会用更多相关信息更新 OP。
-
现在更清楚了.. 感谢您的编辑...