• mysql添加外键的4种方式


    今天开始复习,在过后的几天里开始在博客上记录一下平时疏忽的知识点,温故而知新 屁话不多--直接上货

    创建主表: 班级

    CREATE TABLE class(cid INT PRIMARY KEY AUTO_INCREMENT,

    sname VARCHAR(15) NOT NULL)

    INSERT INTO class VALUES(NULL,'六年级一班')
    INSERT INTO class VALUES(NULL,'六年级二班')

    第一种://1.在属性值后面直接添加(有点小问题)

    CREATE TABLE student(sid INT AUTO_INCREMENT,
    sname VARCHAR(10) NOT NULL,
    s_cid INT REFERENCES class(cid),
    PRIMARY KEY(sid)
    );

    //添加数据进行测试
    INSERT INTO student VALUES(NULL,'王大锤',2)
    INSERT INTO student VALUES(NULL,'胡汉三',3)    //约束不生效,原因待查
    INSERT INTO student VALUES(NULL,'卧槽',4)     //不敢相信,在测试一次

    这种方式,测试不知道为什么,居然添加进去了  WTF?  在网上百度无果,自学群无回复  暂时先搁置在这儿

    第二种://2.在sql语句末端添加

    CREATE TABLE student(
    sid INT AUTO_INCREMENT,
    sname VARCHAR(10),
    s_cid INT,
    PRIMARY KEY(sid),
    FOREIGN KEY (s_cid) REFERENCES class(cid)
    );

    //插入数据测试一下
    INSERT INTO student VALUES(NULL,'王大锤',2)
    INSERT INTO student VALUES(NULL,'胡汉三',3)   //约束生效  插入失败

    外键约束生效

    第三种://3.fk的使用

    这种是值下课自己手动收集总结的,理解还不是很到位,一番测试还是弄懂了一点,表中的  fk_子表_父表

    CREATE TABLE student(sid INT AUTO_INCREMENT,
    sname VARCHAR(10) NOT NULL,
    s_cid INT ,
    PRIMARY KEY(sid),
    CONSTRAINT fk_student_class FOREIGN KEY(s_cid) REFERENCES class(cid)
    );

    //测试一波 OK
    INSERT INTO student VALUES(NULL,'王大锤',2)
    INSERT INTO student VALUES(NULL,'胡汉三',3)  //约束生效  插入失败

    第四种://4.在建表后添加外键  (教学类容)

    CREATE TABLE student(sid INT AUTO_INCREMENT,
    sname VARCHAR(10) NOT NULL,
    s_cid INT ,
    PRIMARY KEY(sid)
    );

    //添加外键约束:  ALTER TABLE student ADD FOREIGN KEY (s_cid) REFERENCES class(cid);

    //测试
    INSERT INTO student VALUES(NULL,'王大锤',2)
    INSERT INTO student VALUES(NULL,'胡汉三',3)  //约束生效   插入失败

    总结到此结束,有疏忽之处,望大家指出修正

  • 相关阅读:
    【bzoj4917】Hash Killer IV 乱搞
    【bzoj2770】YY的Treap 权值线段树
    【bzoj4898】[Apio2017]商旅 Floyd+分数规划+Spfa
    【GXZ的原创】平衡树性能测试
    【bzoj2969】矩形粉刷 期望
    【bzoj3325】[Scoi2013]密码 逆模拟Manacher
    【bzoj4974】字符串大师 逆模拟KMP
    【bzoj4987】Tree 树形背包dp
    【bzoj3672】[Noi2014]购票 斜率优化dp+CDQ分治+树的点分治
    【bzoj4325】NOIP2015 斗地主(&“加强”版) 搜索
  • 原文地址:https://www.cnblogs.com/msi-chen/p/10189532.html
Copyright © 2020-2023  润新知