Mysql——外鍵

一,外鍵

    外鍵:foreign key,(外邊的鍵,鍵不在本表中):若是一張表中有一個字段(非主鍵)指向另外一張表的主鍵,則該字段稱爲外鍵。
java

二,增長外鍵

    外鍵能夠在表建立時或建立完表以後增長(要kao慮數據的問題)。一個表能夠有多個外鍵。
spa

    建立表的時候增長外鍵,在全部表字段以後使用foregn key(外鍵字段) references 外部表(主鍵字段)
code

create table my_foreign1(
id int primary key AUTO_INCREMENT,
name varchar(20) comment'學生姓名',
c_id int comment'學號', 
foreign key(c_id) REFERENCES my_class(id)
)charset utf_8 ;

    外鍵,要求字段自己就是一個索引(普通索引),若是字段自己沒有索引,則外鍵會先建立一個索引,而後纔會建立外鍵自己。
索引

    在新增表以後增長外鍵,修改表結構:table

alter table 表名 add contraint 外鍵名 foreign key(外鍵字段) references 父表(主鍵字段)

三,修改外鍵&刪除外鍵

    外鍵不能修改,只能先刪除後新增
class

    刪除外鍵:引用

alter table 表名 drop foreign key 外鍵名 ;//一張表能夠有多個外鍵,可是外鍵名不能相同

四,外鍵做用

    外鍵默認做用有兩點:一個對父表,一個對子表,外鍵字段在子表中。
im

    對子表約束:若是在子表數據進行寫操做的時候,若是對應的外鍵字段在父表中沒有匹配,則操做失敗。(約束子表數據寫操做)。
數據

    對父表約束:父表數據的寫操做(刪和改,都涉及到主鍵自己),若是對應的主鍵在子表中已經被數據引用,則不容許操做。
tab

相關文章
相關標籤/搜索