数据库外键


-- 第12小节 数据库外键

-- 第一张表
CREATE TABLE IF NOT EXISTS`grade`( `gradeid` INT(10) NOT NULL AUTO_INCREMENT COMMENT '年级', `gradename` VARCHAR(18) NOT NULL COMMENT '年级名称', PRIMARY KEY(`gradeid`) )ENGINE=INNODB DEFAULT CHARSET=utf8 -- 第二张表 CREATE TABLE IF NOT EXISTS `student`( `id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号', `name` VARCHAR(10) NOT NULL DEFAULT '匿名' COMMENT '姓名', `sex` VARCHAR(2) NOT NULL DEFAULT '' COMMENT '性别', `gradeid` INT(10) NOT NULL COMMENT '年级', PRIMARY KEY(`id`) )ENGINE=INNODB DEFAULT CHARSET=utf8 -- 创建表时无外键关系 ALTER TABLE `student` ADD CONSTRAINT `fk_gradeid` FOREIGN KEY(`gradeid`) REFERENCES `grade`(`gradeid`) -- alter table 表名 add constraint 约束名 foreign key(作为外键的列)reference 哪个表(`哪个字段`) -- 以上的操作都是物理外键,数据库级别的外键,不建议使用 -- 最佳的方法 是用程序去实现