0

我有一张需要更改名称的表,但有很多对该表的引用。当我运行以下查询时

使用信息模式;SELECT * FROM KEY_COLUMN_USAGE WHERE REFERENCED_TABLE_NAME = 'TABLE_NAME' 和 CONSTRAINT_SCHEMA = 'TEST_SCHEMA'

有50多个结果。有没有办法一次更新这些,或者我需要为每个引用编写一个修改脚本?我正在使用mysql,表是innodb。它必须能够通过 db deploy 运行,因此我将无法使用管理员登录(尝试更新 KEY_COLUMN_USAGE 失败)。

谢谢!

4

2 回答 2

0

要更新 FK 必须存在 PK,这是不可协商的。

  • 您可以删除 FK 并重新创建它。
  • 或者您可以尝试设置auto_commit=0;执行所有查询(首先是 PK,然后是 FK)并提交。

看看这里

于 2012-07-10T16:29:37.767 回答
0

我开始像旧表一样创建新表,以保留团队其他成员的休眠引用,而我的更改没有,然后当我的外键导致我的测试失败时,我认为这将是我想要的必须手动完成。alter table 命令会按应有的方式更新它,一切都很好!

于 2012-07-10T17:24:34.793 回答