无法添加外键MySQL:errno 150

无法添加外键MySQL:errno 150,mysql,sql,Mysql,Sql,我尝试添加外键: 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)

我尝试添加外键:

   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\u id\u I密钥出错:

无法创建表
crm\u test
leads\u invoices
(错误号:150“Foreign 键约束格式不正确“)

我检查了所有类型和表格,似乎它们都是正确的。。
我怎样才能解决这个问题?希望你能帮助我。谢谢

您必须将
ENGINE=InnoDB DEFAULT CHARSET=utf8
添加到leads表中

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

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

您必须将
engine=InnoDB DEFAULT CHARSET=utf8
添加到leads表中

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

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

谢谢,这节省了我的时间,也节省了我的时间