es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La restricción de clave externa de MariaDB está formada incorrectamente.

Estoy utilizando DBeaver para enviar esta solicitud SQL a mi Base de Datos MariaDB:

CREATE TABLE liaison_att_ae (
    id_attestation INT(11),
    id_ae INT(11),
    PRIMARY KEY (id_attestation, id_ae),
    FOREIGN KEY (id_attestation) REFERENCES attestation (id),
    FOREIGN KEY (id_ae) REFERENCES ancien_employeur (id)
);

No estoy seguro de por qué, pero obtengo este error:

No se puede crear la tabla database.liaison_att_ae (errno: 150 “La restricción de clave externa está formada incorrectamente”)

Las tablas attestation y ancien_employeur tienen ambas id como clave primaria.

¿Qué estoy haciendo mal?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error indica que hay un problema con la restricción de clave externa en tu consulta SQL. Específicamente, el mensaje de error sugiere que la restricción está formada incorrectamente.

    En tu declaración CREATE TABLE, has definido dos restricciones de clave externa, una para id_attestation y otra para id_ae. La clave externa para id_attestation hace referencia al campo id en la tabla attestation, y la clave externa para id_ae hace referencia al campo id en la tabla ancien_employeur.

    Dado que tanto las tablas attestation como ancien_employeur tienen id como su clave primaria, es posible que el problema resida ahí. Específicamente, es posible que el campo id en esas tablas no esté definido como un tipo de dato INT(11).

    Para resolver este problema, debes asegurarte de que el campo id en las tablas attestation y ancien_employeur esté definido como un tipo de dato INT(11). Una vez que hayas hecho eso, deberías poder ejecutar tu declaración CREATE TABLE sin ningún problema.

    Además, asegúrate de haber definido las tablas attestation y ancien_employeur antes de ejecutar esta consulta SQL para crear la tabla liaison_att_ae, ya que las claves externas solo pueden crearse en tablas que ya existen en la base de datos.

Comments are closed.