mysql - hy000 - #1025 error on rename of
Ayuda con: ERROR 1025(HY000): Error al cambiar el nombre de...(errno: 150) (2)
Recibo este error cuando intento ejecutar un comando alter table para colocar una columna: ERROR 1025 (HY000): Error al cambiar el nombre de .... (errno: 150).
Si entiendo correctamente, es un problema de clave externa, pero no tengo ni idea de cómo solucionarlo. ¿Alguien sería tan amable y me diría cómo hacerlo funcionar?
El código usado para crear la tabla:
CREATE TABLE categories(
cid INT AUTO_INCREMENT NOT NULL PRIMARY KEY,
assets_id INT NOT NULL,
cat_name VARCHAR(30) NOT NULL,
INDEX(assets_id),
FOREIGN KEY (assets_id) REFERENCES asset(aid) ON UPDATE CASCADE
)
ENGINE=INNODB DEFAULT CHARSET=utf8;
El comando alter:
ALTER TABLE categories DROP COLUMN assets_id;
Las categorías de la tabla están completamente en blanco. Entonces no hay información para establecer las restricciones de CASCADE. Entonces, ¿podría ayudarme qué clase de hechicería necesito para eliminar la columna assets_id? Gracias.
Para mí, el problema era diferente:
El sitio fue (accidentalmente) accesible para todos. Entonces el script de actualización fue startet varias veces. Eso causó condiciones de carrera que arrojaron errores como este.
-> ¡Asegúrese de acceder al sitio solo una vez, hasta que todos los guiones hayan terminado!
Use las SHOW CREATE TABLE categories
para mostrar el nombre de la restricción.
Lo más probable es que sea categories_ibfk_1
Use el nombre para soltar la clave externa primero y luego la columna:
ALTER TABLE categories DROP FOREIGN KEY categories_ibfk_1;
ALTER TABLE categories DROP COLUMN assets_id;