0
点赞
收藏
分享

微信扫一扫

Java-mysql:外键约束

魔都魅影梅杜萨 2022-02-04 阅读 76
mysqljava

外键约束

创建两个表:
表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;
子表的外键字段和主表的主键字段类型要相似;如果是数值型要求一致,并且无符号也要一致;如果是字符型要求类型一致,长度可以不同。
举报

相关推荐

0 条评论