2016-05-23 29 views
-1

我想将我的数据库模型从mysql工作台移动到mysql服务器。我正在使用反向工程SQL创建脚本,但导入时给我一个错误。我试图谷歌的问题,但没有运气,我的情况。将MySQL工作台转移到服务器

-- ----------------------------------------------------- 
-- Table `MapLibrary`.`Books` 
-- ----------------------------------------------------- 
DROP TABLE IF EXISTS `MapLibrary`.`Books` ; 

CREATE TABLE IF NOT EXISTS `MapLibrary`.`Books` (
    `ISBN` VARCHAR(13) NOT NULL, 
    `date_of_publication` INT NULL, 
    `book_title` VARCHAR(45) NULL, 
    PRIMARY KEY (`ISBN`)) 
ENGINE = InnoDB; 

-- ----------------------------------------------------- 
-- Table `MapLibrary`.`Genre` 
-- ----------------------------------------------------- 
DROP TABLE IF EXISTS `MapLibrary`.`Genre` ; 

CREATE TABLE IF NOT EXISTS `MapLibrary`.`Genre` (
    `genre_code` INT NOT NULL, 
    `genre_name` VARCHAR(45) NOT NULL, 
    PRIMARY KEY (`genre_code`)) 
ENGINE = InnoDB; 


-- ----------------------------------------------------- 
-- Table `MapLibrary`.`Books_By_Genre` 
-- ----------------------------------------------------- 
DROP TABLE IF EXISTS `MapLibrary`.`Books_By_Genre` ; 

CREATE TABLE IF NOT EXISTS `MapLibrary`.`Books_By_Genre` (
    `genre_code` INT NOT NULL, 
    `ISBN` VARCHAR(13) NOT NULL, 
    PRIMARY KEY (`genre_code`, `ISBN`), 
    INDEX `Books_idx` (`ISBN` ASC), 
    CONSTRAINT `Books` 
    FOREIGN KEY (`ISBN`) 
    REFERENCES `MapLibrary`.`Books` (`ISBN`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION, 
    CONSTRAINT `Genre` 
    FOREIGN KEY (`genre_code`) 
    REFERENCES `MapLibrary`.`Genre` (`genre_code`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION) 
ENGINE = InnoDB; 

错误:

ERROR 1022 (23000) at line 89: Can't write; duplicate key in table 'books_by_genre' 

Operation failed with exitcode 1 
+1

线82指向什么?我不能算在这里:) – compuhosny

+0

现在,请删除所有不相关的表格。我们需要82号线附近的桌子和一个与其相连的桌子。 (或者外键约束和它引用的两个表)。作为一个快速提示:检查数据类型(包括已签名/未签名标志)。 – Pred

+0

@AhmadHosny它指向创建表格书籍 –

回答

1

的问题是,书号不是引用的表在其自己的唯一标识符。

我假设Books表是你的基表,三个引用表是M:N链表。如果这是真的,那么你的外键指向错误的方向。 (尝试将连接拖动到另一个方向?)

+0

我想快点试试 –

+0

这不是关于尝试。 BooksByAuthor表应该有对Books和Author表的引用。至少这是有道理的。我不知道如何在GUI中做到这一点,我是一名脚本人员。 – Pred

+0

我将forein键翻过来,以便Books_By .... Tables指向Books表和Pub/Auth/Genr表。现在它在第89行给出了错误1022(23000)的不同错误:不能写;表'books_by_genre'中的重复键操作失败,出口码1 ...行显示:CREATE TABLE IF NOT EXISTS'MapLibrary'.'Books_By_Genre' –

相关问题