外键

方法一

CREATE TABLE `grade`(
`id` INT(10) NOT NULL AUTO_INCREMENT COMMENT '序号',
`grade_name` VARCHAR(20) DEFAULT NULL COMMENT '年级名称',
PRIMARY KEY (`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8

CREATE TABLE IF NOT EXISTS `student`(
`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '序号',
`name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',
`pwd` VARCHAR(20) NOT NULL DEFAULT '123456' COMMENT '登录密码',
`sex` VARCHAR(2) NOT NULL DEFAULT '女' COMMENT '性别',
`birthday` DATETIME DE`student`FAULT NULL COMMENT '出生日期',
`gradeid` INT(10) NOT NULL COMMENT '年级',
`address` VARCHAR(100) DEFAULT NULL COMMENT '住址',
`email` VARCHAR(50) DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY (`id`),
KEY `FK_gradeid` (`gradeid`),
CONSTRAINT `FK_gradeid` FOREIGN KEY (`gradeid`) REFERENCES `grade`(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8

删除有引用关系的表时,先删除引用别人的表,再删除被引用的表。

方法二

ALTER TABLE stu ADD `gradeid` INT(10) NOT NULL COMMENT '年级';
ALTER TABLE stu
ADD CONSTRAINT `FK_gradeid1` FOREIGN KEY (`gradeid`) REFERENCES `grade`(`id`)

以上两种方法都是物理外键->数据库级外键,尽量不要用,避免数据库过多造成困扰。

  • 最佳方法:数据库就是用作单纯的表,就用来存数据。如果想调用多张表就用程序去实现。

  •  

posted on 2021-04-06 16:36  要给小八赚罐头钱  阅读(65)  评论(0)    收藏  举报