una tabla renombrar nombre logico datos como cambiar mysql sql phpmyadmin innodb mysql-error-1025

mysql - tabla - # 1025-Error al cambiar el nombre de ''./database/#sql-2e0f_1254ba7'' a ''./database/table''(errno: 150)



renombrar un schema en mysql (7)

Como se dijo, debes eliminar los FK antes. En Mysql hazlo así:

ALTER TABLE `table_name` DROP FOREIGN KEY `id_name_fk`; ALTER TABLE `table_name` DROP INDEX `id_name_fk`;

Así que estoy tratando de agregar una clave principal a una de las tablas en mi base de datos. Ahora mismo tiene una clave principal como esta:

PRIMARY KEY (user_id, round_number)

Donde user_id es una clave externa.

Estoy tratando de cambiarlo a esto:

PRIMARY KEY (user_id, round_number, created_at)

Estoy haciendo esto en phpmyadmin haciendo clic en el icono de la clave principal en la vista de estructura de la tabla.

Este es el error que obtengo:

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

Es una base de datos MySQL con motor de tabla InnoDB.


Para aquellos que están llegando a esta pregunta a través de google ... este error también puede ocurrir si intenta cambiar el nombre de un campo que actúa como una clave externa.


Para omitir esto en PHPMyAdmin o con MySQL, primero elimine la restricción de clave externa antes de renombrar el atributo.

(Para usuarios de PHPMyAdmin: para eliminar restricciones de FK en PHPMyAdmin, seleccione el atributo y luego haga clic en "vista de relación" junto a "vista de impresión" en la barra de herramientas debajo de la estructura de la tabla)


Probablemente haya otra tabla con una clave externa que haga referencia a la clave principal que está tratando de cambiar.

Para saber qué tabla causó el error, puede ejecutar SHOW ENGINE INNODB STATUS y luego ver la SHOW ENGINE INNODB STATUS sección LATEST FOREIGN KEY ERROR .


Si está agregando una clave externa y se ha enfrentado a este error, podría ser que el valor de la tabla secundaria no está presente en la tabla padre.

Digamos que para la columna a la que se debe agregar la clave externa, todos los valores se han establecido en 0 y el valor no está disponible en la tabla a la que se hace referencia.

Puede establecer algún valor que esté presente en la tabla padre y luego agregar la clave externa que me funcionó.


Si intenta eliminar una columna que es una FOREIGN KEY, debe encontrar el nombre correcto que no es el nombre de la columna. Por ejemplo: si estoy intentando eliminar el campo del servidor en la tabla de alarmas que es una clave externa a la tabla de servidores.

  1. SHOW CREATE TABLE alarm; Busque la línea CONSTRAINT `server_id_refs_id_34554433` FORIEGN KEY (`server_id`) REFERENCES `server` (`id`) .
  2. ALTER TABLE `alarm` DROP FOREIGN KEY `server_id_refs_id_34554433`;
  3. ALTER TABLE `alarm` DROP `server_id`

Esto eliminará el servidor de clave externa de la tabla de alarmas.


Tuve este problema, es por clave externa

Haga clic en la Relation View (como la imagen a continuación), luego encuentre el nombre del campo donde lo va a eliminar y, debajo de la columna Foreign key constraint (INNODB) , ¡simplemente ponga la selección en nada! Significa que no hay clave externa

Espero que eso funcione!