首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ALTER表错误

ALTER表错误
EN

Stack Overflow用户
提问于 2010-05-27 20:14:19
回答 3查看 3.3K关注 0票数 1

有人能给我解释一下为什么我收到下面的错误吗?

我想使用以下语法将mysql表中的"exerciseID“列重命名为"ID”。

代码语言:javascript
复制
ALTER TABLE  `exercises` CHANGE  `exerciseID`  `ID` INT( 11 ) NOT NULL AUTO_INCREMENT

但是,我收到以下错误:

代码语言:javascript
复制
MySQL said: 

#1025 - Error on rename of './balance/#sql-de_110e' to './balance/exercises' (errno: 150)

如有任何建议,我们将不胜感激

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-05-27 20:23:30

我将检查您是否有任何对该列的外键引用。如果是这样,您可能需要删除已为该列定义的外键关系,然后重命名,然后使用新列名将外键关系放回原位。

我认为MySQL被挂起的事实是,当您重命名时,FK关系不再有效,并且它会抛出错误。

编辑:确认的FK Rename in MySQL

您将需要执行以下操作:

代码语言:javascript
复制
alter table yourTable drop foreign key yourID
票数 2
EN

Stack Overflow用户

发布于 2010-05-27 20:23:09

我认为这可能是一个多步骤的过程。

  1. 添加新列,
  2. 从原始列复制数据
  3. 删除旧列
票数 0
EN

Stack Overflow用户

发布于 2010-05-27 20:23:28

只是在google中快速搜索一下,它看起来像是在引用外键中的列-这阻止了重命名。

恐怕我不确定您将如何解决这个问题,因为我在MySQL中很少使用外键

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2920946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档