【问题标题】:ERROR 1025 (HY000): Error on rename of... on MODIFY COLUMN错误 1025 (HY000):在修改列上重命名...时出错
【发布时间】:2014-03-31 19:22:51
【问题描述】:

我有一个 tb_denunciation 和一个 denouncer_id int(10) unsigned 列,其中一个外键引用了 tb_user(user_id)

我需要在denouncer_id 中添加 NOT NULL。我已经检查了该列中没有空值,并且(当然,有一个外键)所有denouncer_id 值都与tb_user 上的一些user_id 匹配。

我正在运行这个命令:

ALTER TABLE tb_denunciation MODIFY denouncer_id int(10) unsigned not null;

我得到了错误:

ERROR 1025 (HY000):重命名错误 './my_db_schema/#sql-1153_1b4133' 到 './my_db_schema/tb_denunciation' (错误号:150)

我在谷歌上搜索过这个错误与外键有关,但我能检查的一切都很好。怎么了?

【问题讨论】:

  • 父子表中的外键列应该相同。删除约束,然后更改两个表,然后重新添加约束。

标签: mysql alter


【解决方案1】:

我认为您需要先删除外键,然后再进行列更改。然后您可以在更改后再次添加外键。

【讨论】:

  • 这很有效,让我发现了我的错误。 denouncer_id 的外键有一个“ON DELETE SET NULL”。我怎么能用这样的外键设置一列 NOT NULL ??? =/
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-04-27
  • 2011-04-24
  • 2013-11-09
  • 2011-05-04
  • 2011-10-27
  • 2015-01-26
  • 2011-05-01
相关资源
最近更新 更多