SQL 外來鍵條件說明

2021-09-26 18:19:55 字數 1532 閱讀 4726

首先介紹一下什麼是外來鍵?

外來鍵用於與另外一張表的關聯,保證資料的完整性。

建立外來鍵的語法是:

foreign key(外來鍵名稱)references 父表

舉個例子:

建立父表:

create table my_class(id int primary auto_increment,class varchar(20));

建立子表,並用外來鍵關聯起來

create table student(name varchar(20),number int,id int,foreign key(id) references my_class(id));

那麼外來鍵是隨便就可以建立麼,需要什麼條件呢?

1.資料庫的儲存引擎是innodb,如果不是innodb,外來鍵可以建立,但是沒有約束效果;

2.外來鍵的字段型別必須與父表的主鍵要求型別一致

3.一張表中的外來鍵名稱不能重複

4.增加外來鍵的字段,必須保證資料與主鍵一致。

看完這4個條件,你或許對儲存引擎是什麼有疑問?那麼這裡簡單介紹一下

資料庫儲存引擎是資料庫底層軟體組織,資料庫管理系統(dbms)使用資料引擎進行建立、查詢、更新和刪除資料。不同的儲存引擎提供不同的儲存機制、索引技巧、鎖定水平等功能,使用不同的儲存引擎,還可以 獲得特定的功能。現在許多不同的資料庫管理系統都支援多種不同的資料引擎。mysql的核心就是儲存引擎

儲存引擎的選擇

不同的儲存引擎都有各自的特點,以適應不同的需求,如下表所示:

功 能

myisam

memory

innodb

archive

儲存限制

256tb

ram64tb

none

支援事物

nono

yesno

支援全文索引

yesno

nono

支援數索引

yesyes

yesno

支援雜湊索引

noyes

nono

支援資料快取

non/a

yesno

支援外來鍵

nono

yesno

可能你也會問什麼是外來鍵的約束效果呢?

外來鍵約束就是對父表和子表的約束;

外來鍵約束有3種:

1.district:嚴格模式,父表不能刪除已經被子表引用的資料

2.cascade:級聯模式,父表刪除,子表的資料也會被刪除

3.set null:置空模式,父表刪除,子表的資料(外來鍵字段)被置空

指定模式的語法:

foreign key(外來鍵字段) references 父表(主鍵) on delete 模式 on update 模式;

mysql 外來鍵說明 Mysql外來鍵詳細說明

在mysql中,innodb引擎型別的表支援了外來鍵約束。constraint symbol foreign key id index col name,references tbl name index col name,on delete on update alter table serial...

sql外來鍵需要輸入嗎 SQL外來鍵

在本教程中,將學習sql外來鍵以及如何建立foreign key約束以強制表之間的關係。1.sql外來鍵約束簡介 外來鍵是一列或一組列,用於強制兩個表中的資料之間的鏈結。在外鍵引用中,第乙個表的主鍵列 或多個列 由第二個表的列 或列 引用。第二個表的列 或列 成為外來鍵。在建立或更改表時,可以使用f...

SQL建立外來鍵

建立外來鍵關係 先建主表再見從表 主表 create table zhu code int primary key name varchar 20 從表 create table cong code int primary key name varchar 20 zhu int,foreign ke...