我最近注意到我的一个数据库中有几个bigint类型字段可以替换为“int”类型。问题是数据库已经在线并且正在使用中,并且还有外键正在运行,因此当我尝试更改脱机数据库中的数据类型时,mysql不会让我产生错误消息:“#1025 - 重命名(...)“时出错。
那么如何在保持外键满意的同时更改这些字段呢? (而不是消灭现有的数据库!)
答案 0 :(得分:1)
只要列中没有任何数据不适合较小的INT数据类型,就可以将列从BIGINT更改为INT。
ALTER TABLE mytable MODIFY COLUMN mycolumn INT(11);
答案 1 :(得分:0)
在保存数据时,无法减小字段的大小。您只能展开它们。 您可以做的是导出所有数据,禁用密钥,清空表格,更改字段大小&再次导入数据。
答案 2 :(得分:0)
你可以尝试:
DROP
和CREATE
)。