2 ngchihong ngchihong 于 2016.04.12 22:05 提问

Mysql创建表的时候创建不了外键

create table orderdetail
(
id int UNSIGNED AUTO_INCREMENT PRIMARY KEY,
oid varchar(20) ,
fname varchar(20) ,
fprice decimal(5,2),
num SMALLINT UNSIGNED not null,
subtotals decimal(5,2) not null,
CONSTRAINT fk_orderdetail_oid FOREIGN KEY (oid) REFERENCES orders (oid),
CONSTRAINT fk_orderdetail_fname FOREIGN KEY (fname) REFERENCES fruit (fname),
CONSTRAINT fk_orderdetail_fprice FOREIGN KEY (fprice) REFERENCES fruit (fprice)
);
显示错误信息是
[Err] 1215 - Cannot add foreign key constraint

求问大神出错了在哪呢这语法!!在线等!!

3个回答

qq423399099
qq423399099   Ds   Rxr 2016.04.13 09:59
已采纳

(1)外键对应的字段数据类型不一致

(2)两张表的存储引擎不一致

(3)设置外键时“删除时”设置为“SET NULL”

CSDNXIAON
CSDNXIAON   2016.04.12 22:12

Mysql 创建表外键
MYSQL创建BBS表,表外键自己加,仅供参考
mysql创建外键
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

ngchihong
ngchihong   2016.04.12 23:12

不是哦 我发现了 第一条外键可以插入 可是后面两条不行!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
【精华版】mysql创建表(带外键)
创建department表: create table department( dept_name varchar(20), budget int, descript varchar(20), primary key(dept_name) ); 创建course表: create table course( course_id varchar(20), deptnames varchar(2
如何在创建表时同时创建外键
现在有一个课程表KCB,表结构如下: 现要创建一个成绩表CJB,其中课程号KCH为外键: 法①: 结果: 法②: 结果: 结论:可以看出这两种方法都能成功创建一个带外键的表
Mysql 创建表外键
我自己的步骤: 1.定义表,可以指定主键 create table sc (sno char(9),courseno char(10),grade smallint, primary key (sno,courseno)); 2.插入数据 insert into sc values ('31101','01',89); insert into sc values ('31101',
建表时关联外键
1. 建表时创建外键:  CREATE TABLE`xh` (  `id` int(100) unsigned NOT NULL AUTO_INCREMENT COMMENT ,  `cl_id` smallint(3) unsigned NOT NULL COMMENT,  `title` varchar(100) COLLATE utf8_unicode_ci NOT NULL C
MySql之DDL操作创建表(添加主键, 外键约束以及基本的数据类型)
MySql之DDL操作创建表(添加主键, 外键约束以及基本的数据类型)
mysql表创建好后添加外键
命令:alter table 需加外键的表 add constraint 外键名 foreign key(需加外键表的字段名) referencnes 关联表名(关联字段名); 注意:外键名不能重复 ALTER TABLE STORE_FRONTINFO ADD CONSTRAINT FK_STORE_FR_REFERENCE_STORE_AR FOREIGN KEY (AREAID)
mysql 创建 表 索引 外键
创建表1.如果是5.6以下timestamp(3)改为timestamp不然报错create table ACT_RE_MODEL (    ID_ varchar(64) not null,    REV_ integer,    NAME_ varchar(255),    KEY_ varchar(255),    CATEGORY_ varchar(255),    CREATE_TIME...
MYSQL建立外键失败几种情况记录Can't create table不能创建表
当你试图在mysql中创建一个外键的时候,这个出错会经常发生,这是非常令人沮丧的。 像这种不能创建一个.frm 文件的报错好像暗示着操作系统的文件的权限错误或者其它原因,但实际上,这些都不是的,事实上,这个mysql报错已经被报告是一个mysql本身的bug并出现在mysql 开发者列表当中很多年了,然而这似乎又是一种误导。 在很多实例中,这种错误的发生都是因为mysql一直以来都不能
MySql入门之一:DDL操作创建表(添加主键, 外键约束以及基本的数据类型)
创建外键,声明主键的方式小结,mysql,主键,外键,数据类型,5.mysql 数据类型
MYSQL外键(Foreign Key)的创建及使用
在MySQL 3.23.44版本后,InnoDB引擎类型的表支持了外键约束。 外键的使用条件: 1.两个表必须是InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支持,但至少目前不支持); 2.外键列必须建立了索引,MySQL 4.1.2以后的版本在建立外键时会自动创建索引,但如果在较早的版本则需要显示建立;  3.外键关系的两个表的列必须是数据类型相似,也就是可以相互转换