首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >外键错误1215

外键错误1215
EN

Stack Overflow用户
提问于 2013-10-05 13:58:33
回答 1查看 151关注 0票数 0

我收到了一个

错误代码1215不能添加外键约束。

当我将FOREIGN KEY (product_id) REFERENCES products(product_id)排除在代码之外时,它看起来是有效的,但是当我添加它时,我会收到错误。

代码语言:javascript
复制
CREATE SCHEMA `my_web_db`;

USE my_web_db;

DROP TABLE IF EXISTS USERS;
DROP TABLE IF EXISTS DOWNLOADS;
DROP TABLE IF EXISTS PRODUCTS;

CREATE  TABLE `my_web_db`.`USERS` (
  `user_id` INT NOT NULL ,
  `email_address` VARCHAR(100) NULL ,
  `first_name` VARCHAR(45) NULL ,
  `last_name` VARCHAR(45) NULL ,
   PRIMARY KEY (`user_id`) )
DEFAULT CHARACTER SET = utf8;

CREATE  TABLE `my_web_db`.`DOWNLOADS` (
  `download_id` INT NOT NULL ,
  `user_id` INT ,
  `download_date` DATETIME NULL ,
  `filename` VARCHAR(45) NULL ,
  `product_id` INT NOT NULL,
  PRIMARY KEY (`download_id`),
  FOREIGN KEY (user_id) REFERENCES users(user_id),
  FOREIGN KEY (product_id) REFERENCES products(product_id)
)
DEFAULT CHARACTER SET = utf8;

CREATE  TABLE `my_web_db`.`PRODUCTS` (
  `product_id` INT NOT NULL ,
  `product_name` VARCHAR(45) NULL ,
  PRIMARY KEY (`product_id`)
)
DEFAULT CHARACTER SET = utf8;
EN

回答 1

Stack Overflow用户

发布于 2013-10-05 14:05:52

我认为您正在使用ENGINE=myisam,您应该使用ENGINE=InnoDB创建外键引用。

添加了引擎类型。更新的SQL:

代码语言:javascript
复制
CREATE  TABLE `my_web_db`.`USERS` (
  `user_id` INT NOT NULL ,
  `email_address` VARCHAR(100) NULL ,
  `first_name` VARCHAR(45) NULL ,
  `last_name` VARCHAR(45) NULL ,
   PRIMARY KEY (`user_id`) ) ENGINE=InnoDB DEFAULT CHARACTER SET = utf8;

CREATE  TABLE `my_web_db`.`PRODUCTS` (
  `product_id` INT NOT NULL ,
  `product_name` VARCHAR(45) NULL ,
  PRIMARY KEY (`product_id`)
)ENGINE=InnoDB DEFAULT CHARACTER SET = utf8;

CREATE  TABLE `my_web_db`.`DOWNLOADS` (
  `download_id` INT NOT NULL ,
  `user_id` INT ,
  `download_date` DATETIME NULL ,
  `filename` VARCHAR(45) NULL ,
  `product_id` INT NOT NULL,
  PRIMARY KEY (`download_id`),
  FOREIGN KEY (user_id) REFERENCES users(user_id),
  FOREIGN KEY (product_id) REFERENCES products(product_id)
) ENGINE=InnoDB DEFAULT CHARACTER SET = utf8;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19198609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档