mysql的外键创建方式有两种,一种是在创建子表的同时创建外键,另一种时在创建完子表后,修改子表添加外键。
#创建外键方式一:创建子表的同时创建外键
#年级表(id\年级名称)
CREATE TABLE IF NOT EXISTS grade(
gradeid INT(10) PRIMARY KEY AUTO_INCREMENT,
gradename VARCHAR(50) NOT NULL
);
#学生信息表(学号、姓名、性别、年级、手机号、地址、出生日期、邮箱、身份证号)
CREATE TABLE student(
studentno INT(4) PRIMARY KEY,
studentname VARCHAR(20) NOT NULL DEFAULT '匿名',
sex TINYINT(1) DEFAULT 1,
gradeid INT(10),
phone VARCHAR(50) NOT NULL,
address VARCHAR(255),
borndate DATETIME,
email VARCHAR(50),
identityCard VARCHAR(18) NOT NULL,
CONSTRAINT FK_gradeid FOREIGN KEY(gradeid) REFERENCES grade(gradeid)
);
#创建外键方式二:创建子表完毕后,修改子表添加外键
CREATE TABLE student(
studentno INT(4) PRIMARY KEY,
studentname VARCHAR(20) NOT NULL DEFAULT '匿名',
sex TINYINT(1) DEFAULT 1,
gradeid INT(10),
phone VARCHAR(50) NOT NULL,
address VARCHAR(255),
borndate DATETIME,
email VARCHAR(50),
identityCard VARCHAR(18) NOT NULL
);
#修改子表添加外键
ALTER TABLE student
ADD CONSTRAINT FK_gradeid FOREIGN KEY(gradeid) REFERENCES grade(gradeid);
#删除外键
ALTER TABLE student DROP FOREIGN KEY FK_gradeid;
ALTER TABLE student DROP INDEX FK_gradeid;
注意:删除具有主外键关系的表时,要先删子表,后删主表