Error 150 de clave externa de MySQL: un enigma desconcertante
Al intentar crear las tablas "foo" y "bar" con relaciones de clave externa , encuentra el error 1005 (HY000) con referencia al error 150. Este error puede ser frustrante y dejarlo perplejo en cuanto a la raíz. causa.
Según la documentación de MySQL sobre restricciones de clave externa, el problema surge al volver a crear una tabla eliminada que tiene referencias de clave externa. La tabla debe cumplir con las restricciones de clave externa al tener nombres y tipos de columnas coincidentes, así como índices en las claves a las que se hace referencia. Si no se cumplen estas condiciones, MySQL devuelve el error 1005, con un error subyacente 150.
Es probable que su error se deba al hecho de que la tabla "foo" no está definida como una tabla InnoDB. La documentación de MySQL establece explícitamente que ambas tablas deben ser tablas InnoDB y no temporales.
Modificando la consulta de creación de la tabla "foo" para especificar el motor InnoDB:
mysql> CREATE TABLE foo(id INT PRIMARY KEY) ENGINE=InnoDB;
Debería poder crear correctamente la tabla "barra" con la restricción de clave externa, resolviendo el error 150.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3