创建外键的两种方式
方式一.在创建表的时候 添加外键
方式二.表已经创建好了 后续修改表的结构来添加外键
方式一
语法 [constraint 外键关系名] foreign key (从表的字段) references 主表名(主表的字段)
[constraint 外键关系名] 可以不写 就是一个外键约束的名字 如果不写 系统会自己给
foreign key 将从表中的字段作为外键字段
references 映射到主表的字段
CREATE TABLE stu2(
sid INT PRIMARY KEY,
sname VARCHAR(10) NOT NULL,
sex VARCHAR(10) DEFAULT '男'
);
CREATE TABLE score(
id INT PRIMARY KEY,
score INT,
ssid INT,
CONSTRAINT fk_stu2_score FOREIGN KEY (ssid) REFERENCES stu2(sid)
);
方式二 表已经创建好了
alter table dept add primary key (deptno);
alter table emp add foreign key (deptno) references dept(deptno);
DELETE FROM dept WHERE deptno = 20;
注意:
如果两张表有了外键关联 并且从表中正在使用主表数据
那么就不能随便删除主表中的数据
必须先删除从表中的数据 再删除主表的数据
SHOW CREATE TABLE 从表名;//查询建表语句
删除外键
ALTER TABLE 从表名 DROP FOREIGN KEY 外键关系名;
方式一.在创建表的时候 添加外键
方式二.表已经创建好了 后续修改表的结构来添加外键
方式一
语法 [constraint 外键关系名] foreign key (从表的字段) references 主表名(主表的字段)
[constraint 外键关系名] 可以不写 就是一个外键约束的名字 如果不写 系统会自己给
foreign key 将从表中的字段作为外键字段
references 映射到主表的字段
CREATE TABLE stu2(
sid INT PRIMARY KEY,
sname VARCHAR(10) NOT NULL,
sex VARCHAR(10) DEFAULT '男'
);
CREATE TABLE score(
id INT PRIMARY KEY,
score INT,
ssid INT,
CONSTRAINT fk_stu2_score FOREIGN KEY (ssid) REFERENCES stu2(sid)
);
方式二 表已经创建好了
alter table dept add primary key (deptno);
alter table emp add foreign key (deptno) references dept(deptno);
DELETE FROM dept WHERE deptno = 20;
注意:
如果两张表有了外键关联 并且从表中正在使用主表数据
那么就不能随便删除主表中的数据
必须先删除从表中的数据 再删除主表的数据
SHOW CREATE TABLE 从表名;//查询建表语句
删除外键
ALTER TABLE 从表名 DROP FOREIGN KEY 外键关系名;