[英]MySQL alter table - changing a TINYINT to a SMALLINT
I have the following database with two tables (excuse my ugly format): 我有以下带有两个表的数据库(不好用的格式):
TABLE_A : Id TINYINT, PRIMARY KEY (Id)
TABLE_B : Id TINYINT, FOREIGN KEY (Id) REFERENCES TABLE_A (Id)
I would like to modify Id so that it's a SMALLINT rather than a TINYINT. 我想修改Id,以便它是SMALLINT而不是TINYINT。 Here are a couple failed attempts:
这是几次失败的尝试:
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)
Does anyone know what's going on here? 有人知道这是怎么回事吗?
Use below queries 使用以下查询
mysql> ALTER TABLE Price MODIFY Id SMALLINT
mysql> ALTER TABLE Sale MODIFY Id SMALLINT
mysql> ALTER TABLE Phone MODIFY Id SMALLINT
I also answered it at MySQL alter table generating "error on rename" long time back... but you are not replying there... 我也在MySQL alter table上回答了很久,它生成了“重命名错误” ……但是您没有在那儿回复……
Here in your case it will be 在你的情况下
mysql> ALTER TABLE TABLE_A MODIFY Id SMALLINT
mysql> ALTER TABLE TABLE_B MODIFY Id SMALLINT
Update 更新资料
check Help with: ERROR 1025 (HY000): Error on rename of .... (errno: 150) .. Might help you.. 检查帮助:错误1025(HY000):重命名....(错误号:150)时出错 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.