MySQL创建关联表是非常基础的知识,下面就为您举例说明MySQL创建关联表的方法,如果您对MySQL创建关联表方面感兴趣的话,不妨一看 。
MySQL创建关联表可以理解为是两个表之间有个外键关系,但这两个表必须满足三个条件
1.两个表必须是InnoDB数据引擎
2.使用在外键关系的域必须为索引型(Index)
3.使用在外键关系的域必须与数据类型相似
下面分别建两个表来说明一下:
Create TABLE IF NOT EXISTS `books` (
`book_id` smallint(6) NOT NULL auto_increment COMMENT 书籍编号,
`book_name` char(20) NOT NULL COMMENT 书名,
`book_pic` varchar(200) NOT NULL COMMENT 封面,
`book_author` char(20) NOT NULL COMMENT 作者,
`book_pub` char(40) NOT NULL COMMENT 出版社,
`book_sort` char(6) NOT NULL COMMENT 分类,
`book_owner` char(6) default NULL COMMENT 所有者,
`book_borrower` char(7) default NULL COMMENT 借阅者,
`book_borrower_time` date default NULL COMMENT 借阅时间,
PRIMARY KEY (`book_id`),
INDEX (book_borrower))
ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci AUTO_INCREMENT=5 ;
Create TABLE IF NOT EXISTS `parts` (
`part_id` smallint(6) NOT NULL COMMENT 成员编号,
`part_name` varchar(6) NOT NULL COMMENT 成员名,
`part_mail` varchar(50) NOT NULL COMMENT 邮箱,
`part_pass` varchar(20) NOT NULL COMMENT 密码,
PRIMARY KEY (`part_id`),
FOREIGN KEY(part_name) REFERENCES books(book_borrower) on delete cascade on update cascade)
ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;
分析一下books表和parts表,创建他们的关联,我用了books表的book_borrower字段 创建表时索引并选择InnoDB为表引擎 。而parts表即part_name字段为外键,关联到books表的book_borrower字段.注意两 个字段分别是char和varchar都是字符串类型 。on delete cascade意思为当books表有相关记录删除时,那parts表也会跟着删除相关联的记录. 理论上parts表的part_name字段也应该要创建索引才对,但实验证创建关联后自动索引了 。