MySQL Workbench 数据库错误
Posted
技术标签:
【中文标题】MySQL Workbench 数据库错误【英文标题】:MySQL Workbench Database error 【发布时间】:2016-08-26 10:08:49 【问题描述】:我使用 mysql Qorkbench 创建了一个数据库,我尝试将工程师转发到数据库,但它完成时出现错误,这是消息日志:
> 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的EER图
【问题讨论】:
在截断表后尝试执行查询,它可能会工作 【参考方案1】:主键本质上是索引的唯一非空约束。正如错误所指出的,您不需要添加额外的唯一约束,实际上也不能。删除额外的唯一索引子句,你应该没问题:
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
【讨论】:
以上是关于MySQL Workbench 数据库错误的主要内容,如果未能解决你的问题,请参考以下文章
使用 Workbench 将 MS Access 迁移到 MySQL 时出现日期时间错误
MySQLdb 错误:使用 MySQL Workbench 的“未知数据库 Python”
MySQL Workbench 错误:在“读取初始通信数据包”时丢失与 MySQL 服务器的连接,系统错误:0
在 Mac OS 上的 MySQL Workbench 上删除数据库时出现错误 1010
MySQL Workbench 中的正向工程数据库 - 错误 1304:FUNCTION GET_NEXT_SEQ 已存在