方法一
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`)
以上两种方法都是物理外键->数据库级外键,尽量不要用,避免数据库过多造成困扰。
-
最佳方法:数据库就是用作单纯的表,就用来存数据。如果想调用多张表就用程序去实现。
-
浙公网安备 33010602011771号