本文摘自PHP中文网,作者清浅,侵删。
mysql添加外键的方法有:在属性值后面直接添加;在sql语句末端添加;使用fk以及在建表后添加外键
相关学习推荐:mysql教程
mysql添加外键的4种方式
创建主表: 班级
1 2 3 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 2 3 4 5 | CREATE TABLE student(sid INT AUTO_INCREMENT,
sname VARCHAR(10) NOT NULL,
s_cid INT REFERENCES class(cid),
PRIMARY KEY(sid)
);
|
//添加数据进行测试
1 2 3 | INSERT INTO student VALUES(NULL,'王大锤',2)
INSERT INTO student VALUES(NULL,'胡汉三',3) //约束不生效,原因待查
INSERT INTO student VALUES(NULL,'卧槽',4) //不敢相信,在测试一次
|
这种方式,测试不知道为什么,居然添加进去了 WTF? 在网上百度无果,自学群无回复 暂时先搁置在这儿
第二种:2.在sql语句末端添加
1 2 3 4 5 6 7 | CREATE TABLE student(
sid INT AUTO_INCREMENT,
sname VARCHAR(10),
s_cid INT,
PRIMARY KEY(sid),
FOREIGN KEY (s_cid) REFERENCES class(cid)
);
|
//插入数据测试一下
1 2 | INSERT INTO student VALUES(NULL,'王大锤',2)
INSERT INTO student VALUES(NULL,'胡汉三',3) //约束生效 插入失败
|
外键约束生效
第三种:fk的使用
1 2 3 4 5 6 | 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)
);
|
1 2 | INSERT INTO student VALUES(NULL,'王大锤',2)
INSERT INTO student VALUES(NULL,'胡汉三',3) //约束生效 插入失败
|
第四种:在建表后添加外键
1 2 3 4 5 | CREATE TABLE student(sid INT AUTO_INCREMENT,
sname VARCHAR(10) NOT NULL,
s_cid INT ,
PRIMARY KEY(sid)
);
|
//添加外键约束:
1 | ALTER TABLE student ADD FOREIGN KEY (s_cid) REFERENCES class(cid);
|
//测试
1 2 | INSERT INTO student VALUES(NULL,'王大锤',2)
INSERT INTO student VALUES(NULL,'胡汉三',3) //约束生效 插入失败
|
以上就是mysql增加外键有哪些方法的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
c++连接mysql数据库的两种方法小结
mysql索引那些事
mysql中error_log介绍
windows下mysql5.6版本安装及配置过程附有截图和详细说明
mysql数据库sql语句优化
mysql修改my.ini报错怎么办
mysql中jdbc如何实现自动重连机制的实例
mysql索引下推(icp)的简单理解与示例
一文读懂mysql中的索引
mysql如何求两个查询的交集
更多相关阅读请进入《mysql》频道 >>
机械工业出版社
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。
转载请注明出处:木庄网络博客 » mysql增加外键有哪些方法