Mysql 외래 키는 테이블 간의 데이터를 빠르게 업데이트할 수 있는 매우 유용한 데이터 처리 기능입니다. 간단히 말해서 두 테이블 간의 연결을 설정하고 하나의 테이블을 운영할 수 있습니다. 이때 다른 테이블의 데이터도 동시에 변경됩니다.
이 튜토리얼의 운영 환경: Windows 10 시스템, mysql8 버전, Dell G3 컴퓨터.
mysql 외래 키란 무엇입니까?
외래 키는 매우 사용하기 쉬운 기능이며, 간단히 말해서 많은 관계형 데이터베이스에 있는 기능이기도 합니다. 두 테이블 사이에 관계가 형성되어 한 테이블이 작동하면 다른 테이블의 데이터도 동시에 변경될 수 있습니다.
一个学生表里面有学生的所有信息,其中有一个字段是班级id,又有一个班级表,记录着所有的班级信息,按照逻辑来说,如果我们删除了班级 表里面的某个班级,学生表里面是这个班级id的信息就应该修改。
위의 예는 프로그램을 사용하면 정상적으로 완료될 수 있습니다. 먼저 해당 수업을 삭제한 다음 학생 테이블에서 이 수업의 학생 정보인 수업 ID 필드를 수정합니다. 두 부분. 그러나 외래 키를 사용하면 한 단계만 수행하면 외래 키 중 하나가 자동으로 업데이트됩니다. 이는 프로그램에 더 적합합니다. 더욱 간편해졌습니다
create table stu_study ( sid int primary key auto_increment,-- 定义Sid sname varchar(15) not null, course_id int default null, -- 定义课程id 课程id是外键所以要与关联的主表的字段类型保持一致 constraint stu_study_class -- 一个表里可能有多个表之间关联,所以外键需要起一个名字 foreign key (class_id) -- 关联的外键名 references classes(id) -- 关联的主表和主表的字段 on delete cascade -- 当删除的时候触发 )engine=InnoDB default charset utf8 -- 默认存储引擎和编码的字符串
-- 添加外键 alter table stu_study add constraint stu_study_classes -- 外键名 是一定不能够重复的,通常会用关联的两个表名进行命名 foreign key(course_id) references classes(id) on delete cascade;
기존 테이블에 외래 키를 추가하는 것은 테이블을 생성할 때 외래 키를 추가하는 것과 매우 유사합니다. 한 가지 세부 사항은 외래 키 이름을 설정하려면 제약 조건 외래 키 이름을 사용해야 한다는 것입니다.
외래 키를 추가하고 수정하는 것은 테이블 필드를 추가하고 수정하는 것과 매우 유사하다는 것을 알 수 있습니다. 사용되는 키워드는 추가, 삭제 등입니다.
하위 테이블
메인 테이블
외래 키가 설정된 테이블이 하위 테이블이므로 간단히 테이블과 하위 테이블이라는 단어로 이해하면 됩니다.
관련 작업에는 다음과 같은 여러 가지 유형이 있습니다. cascade
,set Null
,no action
외래 키를 설정할 때 이 세 가지가 모두 설정됩니다.
은 삭제 시 수행되는 작업을 의미하므로 주요 차이점은 다음과 같습니다.
cascade
删除主表的某个字段的时候,子表含有这个字段的数据会被清空,这个还是属于相对危险的一个操作的+set null
删除主表的某个字段的时候,子表含有这个字段的这个哪一行的这个字段会用null来显示,但是有个细节就是设置外键的这个字段字段类型就不能设置为not null类型的,否则会报错no action
这个字段会比较有意思,也就是说当主表要删除某个行的时候,如果外键关联有含有这个主表的外键的字段数据的话,就不会删除成功,系统会直接报错之前是主要讲了关联删除,是因为外键在使用的时候关联删除操作是使用的比较频繁的,关联更新的频率是相对来说低一点儿的
关联更新的三个关联操作和删除时一样的,分别是cascade
,set null
,no action
意思是也是一样的,主表某个字段更新了,子表也会更新那个字段!!!,主表更新的某条数据,子表的使用的那个数据会变成空,和子表在使用的情况下,主表就不能够更新数据
alter table stu_study drop foreign key stu_study_classes; -- 删除外键 -- 添加外键 alter table stu_study add constraint stu_study_classes foreign key (course_id) references classes(id) on delete set null -- 一次性设置外键的两种动作 on update cascade
위 내용은 mysql 외래 키 란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!