标签: mysql-error-1025

重命名MySQL中的列时出错

如何重命名表中的列xyz?列是:

Manufacurerid, name, status, AI, PK, int
Run Code Online (Sandbox Code Playgroud)

我想重命名为 manufacturerid

我尝试使用PHPMyAdmin面板,但是我收到此错误:

MySQL said: Documentation
#1025 - Error on rename of '.\shopping\#sql-c98_26' to '.\shopping\tblmanufacturer' (errno: 150)
Run Code Online (Sandbox Code Playgroud)

mysql database alter-table mysql-error-1025

430
推荐指数
5
解决办法
55万
查看次数

MySQL删除一些外键

我有一个表,其主键在其他几个表中使用,并有几个外键到其他表.

CREATE TABLE location (
   locationID INT NOT NULL AUTO_INCREMENT PRIMARY KEY
   ...
) ENGINE = InnoDB;

CREATE TABLE assignment (
   assignmentID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
   locationID INT NOT NULL,
   FOREIGN KEY locationIDX (locationID) REFERENCES location (locationID)
   ...
) ENGINE = InnoDB;

CREATE TABLE assignmentStuff (
   ...
   assignmentID INT NOT NULL,
   FOREIGN KEY assignmentIDX (assignmentID) REFERENCES assignment (assignmentID)
) ENGINE = InnoDB;
Run Code Online (Sandbox Code Playgroud)

问题是,当我试图删除其中一个外键列(即locationIDX)时,它会给我一个错误.

"ERROR 1025(HY000):重命名时出错"

如何在不发生此错误的情况下删除上面的分配表中的列?

mysql constraints foreign-keys mysql-error-1025

176
推荐指数
5
解决办法
32万
查看次数

什么是mysql错误1025(HY000):重命名'./foo'时出错(errorno:150)是什么意思?

我在mysql中试过这个:

mysql> alter table region drop column country_id;
Run Code Online (Sandbox Code Playgroud)

得到了这个:

ERROR 1025 (HY000): Error on rename of './product/#sql-14ae_81' to
'./product/region' (errno: 150)
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?外键的东西?

mysql mysql-error-1025

159
推荐指数
4
解决办法
13万
查看次数

#1025 - 将'./database/#sql-2e0f_1254ba7'重命名为'./database/table'时出错(错误号:150)

所以我试图将一个主键添加到我的数据库中的一个表.现在它有一个这样的主键:

PRIMARY KEY (user_id, round_number)
Run Code Online (Sandbox Code Playgroud)

其中user_id是外键.

我想把它改成这个:

PRIMARY KEY (user_id, round_number, created_at)
Run Code Online (Sandbox Code Playgroud)

我在phpmyadmin中通过单击表结构视图中的主键图标来执行此操作.

这是我得到的错误:

#1025 - Error on rename of './database/#sql-2e0f_1254ba7' to './database/table' (errno: 150)
Run Code Online (Sandbox Code Playgroud)

它是一个带有InnoDB表引擎的MySQL数据库.

mysql sql innodb phpmyadmin mysql-error-1025

78
推荐指数
6
解决办法
10万
查看次数

重命名MySQL中的外键列

我们正在尝试重命名MySQL(5.1.31,InnoDB)中的一个列,该列是另一个表的外键.

起初,我们尝试使用Django-South,但遇到了一个已知问题:

http://south.aeracode.org/ticket/243

OperationalError:(1025,"将./xxx/#sql-bf_4d'重命名为'./xxx/cave_event'(错误号:150)时出错")

将'./xxx/#sql-bf_4b'重命名为'./xxx/cave_event'时出错(错误号:150)

此错误150肯定与外键约束有关.见例如

什么是mysql错误1025(HY000):重命名'./foo'时出错(errorno:150)是什么意思?

http://www.xaprb.com/blog/2006/08/22/mysqls-error-1025-explained/

所以,现在我们正在尝试在原始SQL中重命名.看起来我们必须首先删除外键,然后重命名,然后再次添加外键.听起来不错吗?有没有更好的方法,因为这看起来很混乱和麻烦?

任何帮助将非常感激!

mysql sql foreign-keys mysql-error-1025

45
推荐指数
2
解决办法
4万
查看次数

无法删除外键

我想在我的表中删除外键但是已经进入此错误消息

mysql> alter table customers drop foreign key customerid;
ERROR 1025 (HY000): Error on rename of '.\products\customers' to '.\products\#sql2-7ec-a3' (errno: 152)
mysql>
Run Code Online (Sandbox Code Playgroud)

mysql foreign-keys foreign-key-relationship mysql-error-1025

25
推荐指数
3
解决办法
3万
查看次数

MySQL(InnoDB):需要删除列,并附带外键约束和索引

这是我的表:

CREATE TABLE `alums_alumphoto` (  
  `id` int(11) NOT NULL auto_increment,  
  `alum_id` int(11) NOT NULL,  
  `photo_id` int(11) default NULL,  
  `media_id` int(11) default NULL,  
  `updated` datetime NOT NULL,  
  PRIMARY KEY  (`id`),  
  KEY `alums_alumphoto_alum_id` (`alum_id`),  
  KEY `alums_alumphoto_photo_id` (`photo_id`),  
  KEY `alums_alumphoto_media_id` (`media_id`),  
  CONSTRAINT `alums_alumphoto_ibfk_1` FOREIGN KEY (`media_id`) REFERENCES `media_mediaitem` (`id`),  
  CONSTRAINT `alum_id_refs_id_706915ea` FOREIGN KEY (`alum_id`) REFERENCES `alums_alum` (`id`),  
  CONSTRAINT `photo_id_refs_id_63282119` FOREIGN KEY (`photo_id`) REFERENCES `media_mediaitem` (`id`)  
) ENGINE=InnoDB AUTO_INCREMENT=63 DEFAULT CHARSET=utf8  
Run Code Online (Sandbox Code Playgroud)

我想删除列photo_id,可能还需要删除外键约束和索引.

问题是当我尝试删除列时出现错误:

ERROR 1025 (HY000): Error on rename of '.\dbname\#sql-670_c5c' to …

mysql innodb mysql-error-1025 mysql-error-1091

10
推荐指数
2
解决办法
2万
查看次数

使用Alter Table与现有MYSQL数据库添加外键时出现问题 - 无法添加它!救命!

我有一个生产数据库,我已经重命名了几个外键的列.显然,mysql使我的经历真的很痛苦.

我的解决方案是删除所有索引和外键,重命名id列,然后重新添加索引和外键.

这适用于开发数据库的Windows上的mysql 5.1.

我去我的debian服务器上运行我的迁移脚本,它也使用mysql 5.1,它给出了以下错误:

mysql> ALTER TABLE `company_to_module`
    -> ADD CONSTRAINT `FK82977604FE40A062` FOREIGN KEY (`company_id`) REFERENCES `company` (`company_id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
ERROR 1005 (HY000): Can't create table 'jobprep_production.#sql-44a5_76' (errno: 150)
Run Code Online (Sandbox Code Playgroud)

此表中没有值与我尝试添加的外键冲突.数据库没有改变.外键DID存在于...之前,因此数据很好.我们没有提到我使用了服务器上的SAME数据库,它可以在Windows上正常迁移.但是这些相同的外键迁移并没有采用Debian.

列使用相同的类型 - BIGINT(20)

这些名称实际上存在于各自的表中.

这些表是innodb.它们已经在其他列中具有外键.这不是一个新的数据库.

我不能删除表,因为这是一个生产数据库.

我的数据库中的"按原样"表格:

 CREATE TABLE `company_to_module` (
  `company_id` bigint(20) NOT NULL,
  `module_id` bigint(20) NOT NULL,
  KEY `FK8297760442C8F876` (`module_id`),
  KEY `FK82977604FE40A062` (`company_id`) USING BTREE,
  CONSTRAINT `FK8297760442C8F876` FOREIGN KEY (`module_id`) REFERENCES `module` (`module_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
Run Code Online (Sandbox Code Playgroud)

Create Table: CREATE TABLE …
Run Code Online (Sandbox Code Playgroud)

mysql foreign-keys alter-table mysql-error-1025 mysql-error-1005

9
推荐指数
2
解决办法
3万
查看次数

存在外键约束时更改MySQL主键

我有两个已经存在的表,看起来(部分)大致是这样的:

CREATE TABLE parent (
    old_pk CHAR(8) NOT NULL PRIMARY KEY
) ENGINE=InnoDB;

CREATE TABLE child (
    parent_key CHAR(8),
    FOREIGN KEY (parent_key) REFERENCES parent(old_pk)
        ON UPDATE CASCADE ON DELETE CASCADE
) ENGINE=InnoDB;
Run Code Online (Sandbox Code Playgroud)

我想添加一个新的自动递增整数id列,parent并将其用作主键,同时仍保留old_pk为唯一键,并允许其他表喜欢child在外键约束中引用它.不幸的是,简单说ALTER TABLE parent DROP PRIMARY KEY不起作用:

错误代码:1025

将'./data/#sql-4013_70f5e'重命名为'./data/parent'时出错(错误号:150)

一些谷歌搜索表明这是由于现有的外键引用child.从本质上讲,我需要一种方法告诉M​​ySQL"使用其他列作为主键,但不要忘记原始列的唯一键 - ".有没有办法实现这一点,除了从中删除关键约束child并在之后恢复它们?

假设我必须在适当的位置更改表,而不是使用相同的数据创建副本并在以后交换它们.我SET FOREIGN_KEY_CHECKS = 0在改变表之前尝试过使用,但它似乎没有帮助.

mysql constraints foreign-keys primary-key mysql-error-1025

8
推荐指数
1
解决办法
1万
查看次数

删除索引时出现MySQL错误(错误150)

我有丢弃外键索引的问题,我总是得到同样的错误

 ALTER TABLE `comments` DROP INDEX `id_user`  
Run Code Online (Sandbox Code Playgroud)

哪个输出

 1025 - Error on rename of './postuj_cz1/#sql-d834_a0c704' 
 to './postuj_cz1/comments' (errno: 150) 
Run Code Online (Sandbox Code Playgroud)

id_user上其他表是简单主键索引.

我使用的是MySQL 5.0.85版本

mysql sql mysql-error-1025

8
推荐指数
3
解决办法
1万
查看次数