Mysql中的外來鍵索引

2021-08-27 18:48:55 字數 1114 閱讀 5106

mysql> create table tab1(

-> id int,

-> name char(20)

-> );

query ok, 0 rows affected (0.21 sec)

mysql> alter table tab1 add primary key(id);

query ok, 0 rows affected (0.39 sec)

records: 0 duplicates: 0 warnings: 0

mysql> create table tab2(

-> id1 int,

-> name char(20),

-> foreign key(id1) references

-> tab1(id)

-> on delete cascade

-> on update cascade #cascade是一種級聯動作的型別

-> );

query ok, 0 rows affected (0.39 sec)

外來鍵索引失敗的一般原因:

1.主表忘記給定主鍵

2.被參考字段與參考字段的資料型別不一致

3.主表與從表的儲存引擎不一致

show

create

table table_name

使用此語句檢視兩表的儲存引擎:

| tab1  | create

table

`tab1` (

`id`

int(11) not

null,

`name`

char(20) default

null,

primary

key (`id`)

) engine=innodb default charset=utf8 | #關注engine後面的,若不同 更改相同。

修改語句如下:

alter

table tab1 engine=innodb;

mysql 所有外來鍵 mysql中的外來鍵

mysql中的外來鍵 1.預設的外來鍵存在之後,會對資料進行約束。1 約束1 如果子表中新增的資料,外來鍵字段對應的資料如果在父表中不存在,那麼新增失敗。有資料之後 2 約束2 父表不能刪除 或者修改 乙個被子表引用的資料記錄 3.外來鍵約束 預設的使用者所能看到的約束都是外來鍵的一種約束 嚴格模式...

關於MySQL 外來鍵索引

1 什麼時候需要用到外來鍵索引呢?答 a表中存在唯一索引id a,b表中的字段包含id a,由於b表自身已經有主鍵索引,此時如果將字段id a設定為外來鍵索引索引 foreign key 則建立外來鍵索引。使用場景 1 父表更新時,子表也更新 父表刪除時,如果 2 子表有匹配的項,則刪除失敗。3 父...

mysql中索引型別和外來鍵約束

普通索引 index 索引名稱 欄位名 或 key 欄位名 不具備唯一性 允許null值 唯一索引 unique key 索引名稱 欄位名 具備唯一性 允許有null值 主鍵索引 primary key 欄位名 具備唯一性 不允許有null值 復合索引 把多個字段做成索引 可以和上邊三個搭配 基本語...