SQL Error 1005: Can not create table

0

I am using workbench in graphic mode, I made a model and now it gives me the following error:

Executing SQL script in server
ERROR: Error 1005: Can't create table 'bd_easymaker_0'.'herramientas' (errno: 121 "Duplicate key on write or update")
SQL Code:
        -- -----------------------------------------------------
        -- Table 'BD_EasyMaker_0'.'Herramientas'
        -- -----------------------------------------------------
        CREATE TABLE IF NOT EXISTS 'BD_EasyMaker_0'.'Herramientas' (
          'ID_Herramienta' INT NOT NULL AUTO_INCREMENT,
          'ID_Dueño' INT NOT NULL,
          'Descripcion' VARCHAR(250) NOT NULL,
          'Desc_Estado' VARCHAR(100) NOT NULL,
          'Ubicacion' VARCHAR(60) NOT NULL,
          'Prerequisitos' VARCHAR(100) NULL,
          'ID_Imagen' INT NOT NULL,
          'HoC' VARCHAR(150) NULL,
          'Duracion' INT NULL,
          PRIMARY KEY ('ID_Herramienta'),
          INDEX 'ID_Dueño_idx' ('ID_Dueño' ASC),
          INDEX 'ID_Imagen_idx' ('ID_Imagen' ASC),
          CONSTRAINT 'FK_ID_Dueño'
            FOREIGN KEY ('ID_Dueño')
            REFERENCES 'BD_EasyMaker_0'.'Usuarios' ('ID_Usuario')
            ON DELETE NO ACTION
            ON UPDATE NO ACTION,
          CONSTRAINT 'FK_ID_Imagen'
            FOREIGN KEY ('ID_Imagen')
            REFERENCES 'BD_EasyMaker_0'.'Imagenes' ('ID_Imagen')
            ON DELETE NO ACTION
            ON UPDATE NO ACTION)
        ENGINE = InnoDB

SQL script execution finished: statements: 9 succeeded, 1 failed

Fetching back view definitions in final form.
Nothing to fetch

I'm a newbie in BD, I hope you can help me, I think it's a design error.

    
asked by eduardo Castillo 08.09.2017 в 20:26
source

1 answer

0

The error is in the CONSTRAINT FK_ID_IMAGEN, you must rename it:

-- Table 'BD_EasyMaker_0'.'Herramientas'
        -- -----------------------------------------------------
        CREATE TABLE IF NOT EXISTS 'BD_EasyMaker_0'.'Herramientas' (
          'ID_Herramienta' INT NOT NULL AUTO_INCREMENT,
          'ID_Dueño' INT NOT NULL,
          'Descripcion' VARCHAR(250) NOT NULL,
          'Desc_Estado' VARCHAR(100) NOT NULL,
          'Ubicacion' VARCHAR(60) NOT NULL,
          'Prerequisitos' VARCHAR(100) NULL,
          'ID_Imagen' INT NOT NULL,
          'HoC' VARCHAR(150) NULL,
          'Duracion' INT NULL,
          PRIMARY KEY ('ID_Herramienta'),
          INDEX 'ID_Dueño_idx' ('ID_Dueño' ASC),
          INDEX 'ID_Imagen_idx' ('ID_Imagen' ASC),
          CONSTRAINT 'FK_ID_Dueño'
            FOREIGN KEY ('ID_Dueño')
            REFERENCES 'BD_EasyMaker_0'.'Usuarios' ('ID_Usuario')
            ON DELETE NO ACTION
            ON UPDATE NO ACTION,
          CONSTRAINT 'FK_ID_Imagen_Herram'
            FOREIGN KEY ('ID_Imagen')
            REFERENCES 'BD_EasyMaker_0'.'Imagenes' ('ID_Imagen')
            ON DELETE NO ACTION
            ON UPDATE NO ACTION)
        ENGINE = InnoDB

This is because in your "Teams" table you already have a CONSTRAINT calling FK_ID_IMAGEN

    
answered by 08.09.2017 / 20:52
source