MySQL alter table-将TINYINT更改为SMALLINT

MySQL alter table-将TINYINT更改为SMALLINT,mysql,key,alter,sql-types,Mysql,Key,Alter,Sql Types,我有以下带有两个表的数据库(请原谅我的难看格式): 我想修改Id,使其成为SMALLINT而不是TINYINT。以下是几次失败的尝试: mysql> ALTER TABLE TABLE_A MODIFY Id SMALLINT ERROR 1025 (HY000): Error on rename of '.\testdb\#sql-bcc_16' to '.\testdb\table_a' (errno: 150) mysql> ALTER TABLE TABLE_B DROP

我有以下带有两个表的数据库(请原谅我的难看格式):

我想修改Id,使其成为SMALLINT而不是TINYINT。以下是几次失败的尝试:

mysql> ALTER TABLE TABLE_A MODIFY Id SMALLINT
ERROR 1025 (HY000): Error on rename of '.\testdb\#sql-bcc_16' to '.\testdb\table_a' (errno: 150)

mysql> ALTER TABLE TABLE_B DROP FOREIGN KEY (Id)
ERROR 1025 (HY000): Error on rename of '.\testdb\table_b' to '.\testdb\#sql2-bcc-16' (errno: 152)
有人知道这里发生了什么吗?

使用下面的查询

mysql>ALTER TABLE Price MODIFY Id SMALLINT

mysql>ALTER TABLE Sale MODIFY Id SMALLINT

mysql>ALTER TABLE Phone MODIFY Id SMALLINT

我也回答了 很久以前。。。但是你没有回答

这就是你的情况

mysql>altertable\u修改Id SMALLINT

mysql>altertable\u B修改Id SMALLINT

更新


检查。。可能对您有所帮助。

Fahim-查看我的“尝试失败”和错误消息。这些问题和你要我做的完全一样。不过,感谢您的投入。:)两个表中是否都有数据??我认为有大小的问题。。。TINYINT和SMALLINT可以保存值多长时间?您可以执行
描述MYTABLE01
描述MYTABLE02
,并让我知道它提供了什么
显示创建表\u b
显示的内容。您应该首先
更改表\u b删除外键Id
(其中
Id
是外键的名称).已解决或仍面临错误??
mysql> ALTER TABLE TABLE_A MODIFY Id SMALLINT
ERROR 1025 (HY000): Error on rename of '.\testdb\#sql-bcc_16' to '.\testdb\table_a' (errno: 150)

mysql> ALTER TABLE TABLE_B DROP FOREIGN KEY (Id)
ERROR 1025 (HY000): Error on rename of '.\testdb\table_b' to '.\testdb\#sql2-bcc-16' (errno: 152)