Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL alter table generating“;重命名时出错";_Mysql_Key_Alter - Fatal编程技术网

MySQL alter table generating“;重命名时出错";

MySQL alter table generating“;重命名时出错";,mysql,key,alter,Mysql,Key,Alter,这是我的错误记录: 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”的表 我的错误与此类似,但我的数据目录中

这是我的错误记录:

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表的任何工件,因为这只是一个小的测试数据库,我以前实际上没有修改过任何表

编辑:更多信息如下

我真正想做的是将另一个表中的Id(主键)更改为SMALLINT(而不是TINYINT)。但是,此电话表的Id是外键,引用另一个表中的Id。因此,我认为在主表中继续进行类型更改之前,需要删除该表的外键。我希望这是清楚的

编辑2:表格

销售-Id不为空,主键(Id)

电话-Id不为空,外键(Id)引用销售(Id)


我希望数据库中的所有ID都是SMALLINT而不是TINYINT。这就是我目前的情况。

试试
mysql>altertablepricedropid

希望它能起作用。。。祝你好运

我试过用你的query
mysql>altertablepricedrop外键Id

它执行,但没有工作

更新:

使用以下查询

mysql>ALTER TABLE Price MODIFY Id SMALLINT

mysql>ALTER TABLE Sale MODIFY Id SMALLINT


mysql>ALTER TABLE Phone MODIFY Id SMALLINT

我帖子的顶部一直在消失。上面写着“大家好,…”一个叫“ThinkStip”的人一直在编辑我的帖子。我相信Id是另一个表中的主键。。。对吗?法希姆-对!我会用更多的相关信息更新OP。现在更清楚了。。感谢编辑…我仍然希望手机有一个Id字段,我只需要暂时删除Id是外键的事实。如果我删除整个列,在更改主表后将无法“重新附加”ID,对吗?是的。。。我的下一个问题:你为什么要暂时放弃呢??你到底想做什么??请编辑您的问题。上述查询将从价格表中删除Id列。。。我相信电话是另一个表,Id是主键。。。你们能提供两个表的结构吗?我确实编辑了我的问题,但我会在这里再次解释。我有另一个表“Sale”,带有一个“Id TINYINT NOT NULL”(Id是主键)。我只是想把Id设为SMALLINT而不是TINYINT,但我的互联网研究让我相信,如果有外键指向这个Id,这是不可能的。所以,我必须先放下那些键。