0

我需要将修改表数据类型的表从 更改bigintint,数据库中总共有 200 个表,但由于外键约束,我无法更改我的表。

我试过SET foreign_key_checks = 0;了,但它不适用于修改数据类型。

请告诉我有没有其他方法可以在不影响现有表的情况下修改表。

4

1 回答 1

1

这不像你想的那么简单。我假设您要更改的列是表主键的一部分。

所以这些是你在 MySQL 中需要遵循的步骤

  • 将所有 FK 放到表中
  • 更新表上的数据类型
  • 将所有具有 FK 的表上的数据类型更新为要更改的表。
  • 重新创建所有 FK

除了我上面提到的之外,没有其他方法可以“欺骗”mysql 来更改作为 PK/FK 一部分的列。

MySQL 需要 PK 和 FK 中的列是完全相同的数据类型,否则您将无法重新创建 FK。

于 2013-01-18T13:37:59.553 回答