處理數據庫類分配的介紹,並在幾個外鍵上遇到問題。我做了幾個外鍵,但是偶爾我會陷入困境,不知道爲什麼它不起作用。定義外鍵的麻煩(MySQL)
這個例子是一所大學的數據庫,我有段
describe section;
+--------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+-------+
| course_id | varchar(7) | NO | PRI | | |
| sec_id | varchar(10) | NO | PRI | | |
| semester | varchar(10) | NO | PRI | | |
| year | int(11) | NO | PRI | 0 | |
| building | varchar(20) | YES | MUL | NULL | |
| room_no | varchar(5) | YES | | NULL | |
| time_slot_id | varchar(5) | YES | MUL | NULL | |
+--------------+-------------+------+-----+---------+-------+
我想做一個需要數據庫,我能夠做出ID
和course_id
外鍵,而其他任何一個我嘗試沒有按't work
create table takes(
ID int,
course_id varchar(7),
sec_id varchar(10),
semester varchar(10),
year int,
grade int,
primary key (course_id, sec_id, semester, year),
foreign key (ID) references student(ID)
on delete cascade on update cascade,
foreign key (course_id) references section(course_id)
on delete cascade on update cascade
) engine = innodb;
直到這一點起作用。 如果我嘗試添加此,它給我errno: 150
foreign key (sec_id)
references section(sec_id)
on delete cascade on update cascade
任何幫助表示讚賞。我想我可能會錯過關於外鍵的一些基本知識,因爲它對course_id
有效,但對sec_id
不起作用,它似乎完全相同?
後看到'錯誤號:150',運行'SHOW ENGINE INNODB STATUS'。它包含有關爲什麼它在新的外鍵添加失敗的信息。 –