#1005(错误编号:150“外键约束格式不正确”))

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#1005(错误编号:150“外键约束格式不正确”))相关的知识,希望对你有一定的参考价值。

我试图在数据库上创建一个新表,但这不起作用。我不明白哪里出了错。

正确创建表:

CREATE TABLE tblCliente(

    idCliente INT NOT NULL auto_increment,
    indirizzo TEXT NOT NULL,
    ragSoc VARCHAR(55),
    piva VARCHAR(55),
    cf VARCHAR(55),
    nominativo VARCHAR(55),
    tel VARCHAR(55),
    mail VARCHAR(255),
    PRIMARY KEY(idCliente)
)Engine=InnoDB;


CREATE TABLE tblAgente(

    username VARCHAR(55) NOT NULL,
    password VARCHAR(55) NOT NULL,
    grado   varchar(55) NOT NULL,
    trainer VARCHAR(55),
    ufficio VARCHAR(55),
    PRIMARY KEY(username)
)Engine=InnoDB;

CREATE TABLE tblContratto(

    codCtr VARCHAR(55) NOT NULL,
    cliente INT NOT NULL,
    data DATE NOT NULL,
    partner VARCHAR(55),
    PRIMARY KEY(cliente,codCtr),
    FOREIGN KEY (cliente) REFERENCES tblCliente(idCliente)
        ON DELETE CASCADE
        ON UPDATE CASCADE

)Engine=InnoDB;

现在当我尝试在其中创建新表时不起作用:

CREATE TABLE tblPuntoFornitura(

   idFornitura INT NOT NULL auto_increment,
   agente VARCHAR(55) NOT NULL,
   contratto VARCHAR(55) NOT NULL,
   codice VARCHAR(55) NOT NULL,
   indirizzo VARCHAR(255) NOT NULL,
   consumi VARCHAR(55) NOT NULL,
   PRIMARY KEY(idFornitura,agente,contratto),
   FOREIGN KEY (agente) REFERENCES tblAgente(username)
       ON DELETE CASCADE
       ON UPDATE CASCADE,
    CONSTRAINT contratto FOREIGN KEY (contratto) REFERENCES tblContratto(codCtr)
       ON DELETE CASCADE
       ON UPDATE CASCADE


)Engine=InnoDB;

并且终端显示此消息:#1005 - Impossibile creare la tabella `db_empire`.`tblpuntofornitura` (errno: 150 "Foreign key constraint is incorrectly formed")错误是在最后一个外键中,但我无法修复。有人可以帮我吗?

答案

在创建表“ tblPuntoFornitura”之前,执行以下SQL命令:

ALTER TABLE tblContratto ADD CONSTRAINT contratto_pk PRIMARY KEY (codCtr);

以上是关于#1005(错误编号:150“外键约束格式不正确”))的主要内容,如果未能解决你的问题,请参考以下文章

#1005 - 没有 puedo crear tabla `blog`.`carros`(错误:150“外键约束格式不正确”)

SQLSTATE [HY000]:一般错误:1005无法创建表`Projectname`.`users`(errno:150“外键约束格式不正确”)[重复]

SQLSTATE [HY000]:一般错误:1005 无法创建表 `ic`.`livros`(errno: 150 "外键约束格式不正确") id`))

Laravel 迁移错误号:150“外键约束格式不正确”

Laravel 迁移错误:150“外键约束格式不正确”

laravel 5.4 迁移错误:150“外键约束格式不正确”