首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL工作台数据库错误

MySQL工作台数据库错误
EN

Stack Overflow用户
提问于 2016-05-02 00:23:50
回答 1查看 124关注 0票数 2

我使用Mysql Qorkbench创建了一个数据库,并尝试将Engineer转发到数据库,但它完成时出现错误,消息为Log:

代码语言:javascript
复制
> Executing SQL script in server
ERROR: Error 1005: Can't create table `mydb`.`cds` (errno: 121 "Duplicate key on write or update")
SQL Code:
        -- -----------------------------------------------------
        -- Table `mydb`.`CDs`
        -- -----------------------------------------------------
        CREATE TABLE IF NOT EXISTS `mydb`.`CDs` (
          `CDid` INT NOT NULL AUTO_INCREMENT,
          `Titel` VARCHAR(45) NOT NULL,
          `Autor` VARCHAR(45) NOT NULL,
          `Erscheinungsjahr` VARCHAR(45) NOT NULL,
          `Genre` VARCHAR(45) NOT NULL,
          `Stockwerk` VARCHAR(45) NOT NULL,
          `Regal` INT NOT NULL,
          `Ausgeborgt` INT NULL,
          `Rezensionen` VARCHAR(600) NULL,
          `Kurzbeschreibung` VARCHAR(600) NOT NULL,
          PRIMARY KEY (`CDid`),
          UNIQUE INDEX `CDid_UNIQUE` (`CDid` ASC),
          INDEX `Buchungsid_idx` (`Ausgeborgt` ASC),
          CONSTRAINT `Buchungsid`
            FOREIGN KEY (`Ausgeborgt`)
            REFERENCES `mydb`.`Buchung` (`Buchungsid`)
            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.
Could not get definition for mydb.view1 from server
1 views were read back.

这是我的Database的能效比图表

EN

回答 1

Stack Overflow用户

发布于 2016-05-02 00:28:20

主键本质上是一个带索引的唯一非空值约束。您不需要添加额外的唯一约束,实际上也不能添加,正如错误所指定的那样。去掉额外的unique index子句,就可以了:

代码语言:javascript
复制
CREATE TABLE IF NOT EXISTS `mydb`.`CDs` (
  `CDid` INT NOT NULL AUTO_INCREMENT,
  `Titel` VARCHAR(45) NOT NULL,
  `Autor` VARCHAR(45) NOT NULL,
  `Erscheinungsjahr` VARCHAR(45) NOT NULL,
  `Genre` VARCHAR(45) NOT NULL,
  `Stockwerk` VARCHAR(45) NOT NULL,
  `Regal` INT NOT NULL,
  `Ausgeborgt` INT NULL,
  `Rezensionen` VARCHAR(600) NULL,
  `Kurzbeschreibung` VARCHAR(600) NOT NULL,
  PRIMARY KEY (`CDid`), -- no need for an extra index
  INDEX `Buchungsid_idx` (`Ausgeborgt` ASC),
  CONSTRAINT `Buchungsid`
    FOREIGN KEY (`Ausgeborgt`)
    REFERENCES `mydb`.`Buchung` (`Buchungsid`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36968965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档