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