欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

Java-mysql:外键约束

时间:2023-08-06
外键约束

创建两个表:
表news:

-- 创建新闻表CREATE TABLE IF NOT EXISTS news(id INT UNSIGNED AUTO_INCREMENT KEY COMMENT '编号',title VARCHAR(100) NOT NULL UNIQUE COMMENT '新闻标题',content VARCHAR(100) NOT NULL COMMENT '新闻内容',cateId TINYINT NOT NULL COMMENT '新闻所属分类编号')ENGINE=INNODB;

表news_cate:

-- 创建新闻分类表CREATE TABLE IF NOT EXISTS news_cate(id TINYINT UNSIGNED AUTO_INCREMENT KEY COMMENT '编号',cateName VARCHAR(50) NOT NULL UNIQUE COMMENT '分类名称',cateDesc VARCHAR(100) NOT NULL DEFAULT '' COMMENT '分类描述')ENGINE=INNODB;

只有InnoDB存储引擎支持外键。

创建外键
1.建表时指定外键:[ConSTRAINT 外键名称] FOREIGN KEY(字段名称) REFERENCES 主表(字段名称)

在表news和表news_cate中,表news_cate为主表,在news中指定外键,重新创建表news:

-- 创建新闻表CREATE TABLE IF NOT EXISTS news(id INT UNSIGNED AUTO_INCREMENT KEY COMMENT '编号',title VARCHAR(100) NOT NULL UNIQUE COMMENT '新闻标题',content VARCHAR(100) NOT NULL COMMENT '新闻内容',cateId TINYINT UNSIGNED NOT NULL COMMENT '新闻所属分类编号',FOREIGN KEY(cateId) REFERENCES news_cate(id))ENGINE=INNODB;

子表的外键字段和主表的主键字段类型要相似;如果是数值型要求一致,并且无符号也要一致;如果是字符型要求类型一致,长度可以不同。

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。