父级 主键被其它表作为外键 子级表示把其它表的主键作为自己的外键
RESTRICT、NO ACTION、SET NULL 和 CASCADE
RESTRICT、NO ACTION表示子级有数据改变是父级数据不更新
SET NULL 表示父级在更新或者删除时将子记录列的值设为null
ON DELETE CASCADE 表示父记录删除时子记录对应的列数据也删除
ON UPDATE CASCADE 表示父记录更新时子记录对应的列数据也更新
***********************************************************************************
例:
#1用户表
CREATE TABLE EASYBUY_USER
(
`eu_user_id` VARCHAR(10) PRIMARY KEY NOT NULL COMMENT '用户名',
`eu_password` VARCHAR(20) NOT NULL COMMENT '密码',
)ENGINE=INNODB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='用户表(easybuy_user):存放用户基本信息';
#2留言表
CREATE TABLE EASYBUY_COMMENT
(
`ec_id` INTEGER(11) NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '自动编号(标识列),主键',
`ec_content` VARCHAR(500) NOT NULL COMMENT '发表的留言内容',
`eu_user_id` VARCHAR(40) NOT NULL COMMENT '留言用户昵称',
KEY `eu_user_id`(`eu_user_id`),
CONSTRAINT `easybuy_comment_fk_id` FOREIGN KEY (`eu_user_id`) REFERENCES `EASYBUY_USER` (`eu_user_id`)
ON DELETE CASCADE ON UPDATE CASCADE
)ENGINE=INNODB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='留言表(easybuy_comment):存放用户的留言信息';
******************************************************************************************
如果删除用户表的某个用户,留言表中的对应用户的记录也会删除