1、只有InnoDB型別的表才可以使用外來鍵。mysql預設是MyISAM,這種型別不支援外來鍵約束
2、外來鍵的好處:可以使得兩張表關聯,保證資料的一致性和實現一些級聯操作。
3、外來鍵的作用:
保持資料一致性,完整性,主要目的是控制儲存在外來鍵表中的資料。 使兩張表形成關聯,外來鍵只能引用外表中的列的值。
4、建立外來鍵的前提:
兩個表必須是InnoDB表型別。
使用在外來鍵關係的域必須為索引型(Index)。
使用在外來鍵關係的域必須與資料型別相似。
5、建立的步驟
指定主鍵關鍵字: foreign key(列名)。
引用外來鍵關鍵字: references (外來鍵列名)。
6、事件觸發限制:on delete和on update , 可設引數cascade(跟隨外來鍵改動)。
restrict(限制外表中的外來鍵改動),set
Null(設空值),set Default(設預設值)。
[預設]no action
7、舉例
outTable表 主鍵 id 型別 int
建立含有外來鍵的表:
程式碼如下:
create table temp(
id int,
name
char(20),
foreign key(id) references outTable(id) on delete cascade on update
cascade);
create table temp( id int, name char(20),
1、只有InnoDB型別的表才可以使用外來鍵。mysql預設是MyISAM,這種型別不支援外來鍵約束
2、外來鍵的好處:可以使得兩張表關聯,保證資料的一致性和實現一些級聯操作。
3、外來鍵的作用:
保持資料一致性,完整性,主要目的是控制儲存在外來鍵表中的資料。 使兩張表形成關聯,外來鍵只能引用外表中的列的值。
4、建立外來鍵的前提:
兩個表必須是InnoDB表型別。
使用在外來鍵關係的域必須為索引型(Index)。
使用在外來鍵關係的域必須與資料型別相似。
5、建立的步驟
指定主鍵關鍵字: foreign key(列名)。
引用外來鍵關鍵字: references (外來鍵列名)。
6、事件觸發限制:on delete和on update , 可設引數cascade(跟隨外來鍵改動)。
restrict(限制外表中的外來鍵改動),set
Null(設空值),set Default(設預設值)。
[預設]no action
7、舉例
outTable表 主鍵 id 型別 int
建立含有外來鍵的表:
程式碼如下:
create table temp(
id int,
name
char(20),
foreign key(id) references outTable(id) on delete cascade on update
cascade);
程式碼如下:
create table temp( id int, name char(20),
foreign key(id) references outTable(id) on delete cascade on update
cascade);