1
여기에 이상한 문제가 있습니다.MYSQL에서 외래 키가 있는지 확인하지 않습니다.
표 1 : 필드 degree_id의 값이하지 않는 경우 이제
create table course (course_id varchar(6) primary key , degree_id varchar(6) not null, course_name varchar(40) not null , foreign key (degree_id) references degree
(degree_id));
까지 내가 SQL을 이해, 나는 물론 테이블에 값을 삽입 할 수 없습니다 : 2
create table degree (degree_id varchar(6) primary key , degree_name varchar(32) unique key , degree_abbr varchar(3));
표 학위 표에 존재합니다. 심지어 'ㅋ'하지만,
insert into course values('cor_001' , 'blah' , 'COURSE NAME');
이 쿼리가 성공적으로 실행 같은 것을 삽입하려고하면
는 그러나 유효한 degree_id하지 않습니다.
네, 맞습니다. 이제 InnoDB를 사용하기 위해 어떻게 변경합니까? 나는 이미 많은 테이블을 생성하고 채웠다. 테이블을 떨어 뜨릴 수는 없어요. –
'alter table yourtable engine = innodb'. FK 정의를 다시 적용하려면 테이블을 추가로 변경해야합니다. myisam이'create' 쿼리로 끝내면 잃어 버리게됩니다. –
K. 그래서 먼저 모든 엔진을 변경 한 다음 외래 키를 적용하기 위해 테이블을 변경해야합니다. mysql의 기본 엔진을 변경하는 방법이 있습니까? 그래서 테이블을 만들 때마다 ENGINE 속성에 대해 언급 할 필요가 없습니다. –