1
我在這裏面臨一個奇怪的問題。MYSQL不檢查外鍵是否存在
表1:
create table degree (degree_id varchar(6) primary key , degree_name varchar(32) unique key , degree_abbr varchar(3));
表2:
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,我不能,如果場degree_id的值不插入過程表中的任何值存在於學位表中。
但是,如果我嘗試插入類似
insert into course values('cor_001' , 'blah' , 'COURSE NAME');
這個查詢成功運行,即使「胡說」不是一個有效的degree_id。
是的,這是正確的。現在我該如何改變它們以使用InnoDB?我已經創建和填充了很多表格。我無法放下桌子。 – 2013-05-08 15:49:30
'alter table yourtable engine = innodb'。您將不得不進一步修改表格以重新應用FK定義。一旦myisam完成了「創建」查詢,它們就會丟失。 – 2013-05-08 15:51:00
K.所以我需要先修改所有引擎,然後修改表來應用外鍵。無論如何改變MySQL的默認引擎?這樣我每次創建表時都不需要提及ENGINE屬性。 – 2013-05-08 15:53:59