编程特困生Alex 2021-11-24 08:34 采纳率: 20%
浏览 23
已结题

【报错1215】 My sql 在创建表的时候定义外码 Cannot add foreign key constraint

问题遇到的现象和发生背景

最近初学数据库理论和应用,在完整性约束的实验中要求创建表相关属性设置为外码。但是在编程实现的过程中,出现1215报错。
csdn上的错误我基本试过了, 问题依旧存在。引擎设置为“InnoDB”,已检查primary key 和 foreign key ,并且相关属性类型已经设置相同

问题相关代码,请勿粘贴截图
CREATE TABLE `CBS`  
(Cno CHAR(4) PRIMARY KEY,
 Cname CHAR(40) NOT NULL,
 Ctel CHAR(100),
 Cyb CHAR(6),
 Caddr CHAR(40)
);

CREATE TABLE `TS`  
(Tsno CHAR(15),
 Tsname CHAR(100)NOT NULL,
 Tnum SMALLINT CHECK(Tnum>0),
 Tpos CHAR(30),
 Cno CHAR(4),
 PRIMARY KEY(Tsno,Cno),
 CONSTRAINT FOREIGN KEY (Cno)REFERENCES CBS(Cno)
 );

运行结果及报错内容

错误代码: 1215
Cannot add foreign key constraint

我的解答思路和尝试过的方法

子表和父表的数据类型完全一致
引擎已设置为“InnoDB”

我想要达到的结果
  • 写回答

1条回答 默认 最新

  • CSDN专家-sinJack 2021-11-24 08:38
    关注

    CBS(Cno)的括号是中文状态下的。

    CREATE TABLE `TS`  
    (Tsno CHAR(15),
     Tsname CHAR(100)NOT NULL,
     Tnum SMALLINT CHECK(Tnum>0),
     Tpos CHAR(30),
     Cno CHAR(4),
     PRIMARY KEY(Tsno,Cno),
     CONSTRAINT FOREIGN KEY (Cno)REFERENCES CBS(Cno)
     );
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 12月2日
  • 已采纳回答 11月24日
  • 创建了问题 11月24日

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。