Mysql 添加外键约束时出错

Mysql 添加外键约束时出错,mysql,Mysql,每次尝试向表插入外键时,我都会收到以下消息: 错误代码:1215。无法添加外键约束0.281秒 我的创建表代码: CREATE TABLE `test`.`buy`( `id` INT NOT NULL AUTO_INCREMENT, `id_customer` INT UNSIGNED NOT NULL, `code` VARCHAR(45) NOT NULL, PRIMARY KEY(`id`), UNIQUE INDEX `code_UNIQUE`(

每次尝试向表插入外键时,我都会收到以下消息:

错误代码:1215。无法添加外键约束0.281秒

我的创建表代码:

CREATE TABLE `test`.`buy`(
    `id` INT NOT NULL AUTO_INCREMENT,
    `id_customer` INT UNSIGNED NOT NULL,
    `code` VARCHAR(45) NOT NULL,
    PRIMARY KEY(`id`),
    UNIQUE INDEX `code_UNIQUE`(`code`),
    CONSTRAINT `id_customer` FOREIGN KEY(`id_customer`) REFERENCES `test`.`customer`(`id_customer`) ON DELETE RESTRICT ON UPDATE CASCADE,
    CONSTRAINT `code` FOREIGN KEY(`code`) REFERENCES `test`.`product`(`code`) ON DELETE RESTRICT ON UPDATE CASCADE
)

我该怎么办?

请下次格式化代码,以便阅读

您不需要约束xxx位,请尝试以下操作:

CREATE TABLE test.buy (
  id INT NOT NULL AUTO_INCREMENT,
  id_customer INT UNSIGNED NOT NULL,
  code VARCHAR(45) NOT NULL,
  PRIMARY KEY (id),
  UNIQUE INDEX code_UNIQUE (code),
  FOREIGN KEY (id_customer) 
    REFERENCES test.customer (id_customer) 
    ON DELETE RESTRICT ON UPDATE CASCADE,
  FOREIGN KEY (code) 
    REFERENCES test.product (code) 
    ON DELETE RESTRICT ON UPDATE CASCADE
);
如果仍然不起作用,请确保您引用的其他表(test.customer和test.product)已经存在,并且它们具有相同数据类型的匹配字段

查看以下答案: