我有两个表的以下数据库(原谅我丑陋的格式):
TABLE_A : Id TINYINT, PRIMARY KEY (Id)
TABLE_B : Id TINYINT, FOREIGN KEY (Id) REFERENCES TABLE_A (Id)
我想修改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)
有谁知道这里发生了什么?
答案 0 :(得分:1)
使用以下查询
mysql> ALTER TABLE Price MODIFY Id SMALLINT
mysql> ALTER TABLE Sale MODIFY Id SMALLINT
mysql> ALTER TABLE Phone MODIFY Id SMALLINT
我也回答了 MySQL alter table generating "error on rename"很久以前......但你没有在那里回复......
在你的情况下,它将是
mysql> ALTER TABLE TABLE_A MODIFY Id SMALLINT
mysql> ALTER TABLE TABLE_B MODIFY Id SMALLINT
<强>更新强>
检查Help with: ERROR 1025 (HY000): Error on rename of .... (errno: 150) ..可以帮助你..