繁体   English   中英

无法添加外键MySQL:errno 150

[英]Cannot add Foreign Key MySQL :errno 150

我尝试添加外键:

   CREATE TABLE `invoices` (
   `id` int(11) NOT NULL AUTO_INCREMENT,
  ` name` varchar(255) NOT NULL,
   `code_text` text NOT NULL,
   PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;




  CREATE TABLE `leads` (
  `lead_id` int(11) NOT NULL AUTO_INCREMENT,
   ...
   PRIMARY KEY (`lead_id`)
  );



CREATE TABLE `leads_invoices` (
leads_invoice_id int(11) AUTO_INCREMENT NOT NULL,
   invoice_id int(11) NOT NULL,
   lead_id_i  int(11) NOT NULL,
   PRIMARY KEY(leads_invoice_id),
    FOREIGN KEY (invoice_id) REFERENCES invoices(id),
    FOREIGN KEY (lead_id_i) REFERENCES leads(lead_id)
    ON UPDATE CASCADE
    ON DELETE RESTRICT
) ENGINE=InnoDB DEFAULT CHARSET=utf8

但是我的lead_id_i键出错:

无法创建表crm_test leads_invoices (错误号:150“外键约束leads_invoices不正确”)

我检查了所有类型和表,看来它们是正确的。如何解决此问题? 希望你能帮助我。 谢谢!

您必须将ENGINE=InnoDB DEFAULT CHARSET=utf8到销售线索表中

CREATE TABLE `leads` (
  `lead_id` int(11) NOT NULL AUTO_INCREMENT,
   ...
   PRIMARY KEY (`lead_id`)
  )ENGINE=InnoDB DEFAULT CHARSET=utf8;

因为如果要添加外键,则两个表必须具有相同的引擎

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM