mysql 外來鍵的新增與刪除

2021-05-23 05:33:23 字數 1364 閱讀 5405

首先,對於mysql資料庫,只有儲存引擎為innodb的表外來鍵才有效。其他儲存引擎會忽略外來鍵約束。

1.建立兩張表ss_vcc,ss_accesscode

(1)create table ss_vcc

( vccid             varchar(20) not null,

displaynumber     varchar(32),

vccname           varchar(40),

primary key (vccid)

) type=innodb;

create unique index ix_ss_vcc on ss_vcc (vccid);

(2)create table ss_accesscode

( accesscode        varchar(32) not null,

vccid             varchar(20) not null,

routestrategy     integer default 1,

telephonenumber   varchar(32),

serviceid         varchar(32),

servicenodearg    integer default 0,

primary key (accesscode)

) type=innodb;

create unique index ix_ss_accesscode on ss_accesscode (accesscode);

2.新增外來鍵

(1)alter table ss_accesscode add foreign key (vccid) references ss_vcc(vccid) on delete cascade;

用命令:show create table ss_accesscode 檢視

可以看出系統自動給乙個外來鍵約束名稱「ss_accesscode_ibfk_1」

(2)alter table ss_accesscode add constraint fk_ss_asc_vcc foreign key (vccid) references ss_vcc(vccid) on delete cascade;

用命令:show create table ss_accesscode 檢視

外來鍵約束名為:fk_ss_asc_vcc

注:新增外來鍵約束時若沒有指定外來鍵約束的名稱,則系統會自動新增外來鍵約束名:表名_ibfk_n(表示第n個外來鍵約束)

3.刪除外來鍵

根據外來鍵約束的名字來刪除外來鍵

alter table ss_accesscode drop foreign key 外來鍵約束名稱;

mysql新增外來鍵

為已經新增好的資料表新增外來鍵 語法 alter table 表名 add constraint fk id foreign key 你的外來鍵欄位名 references 外表表名 對應的表的主鍵欄位名 例 alter table tb active add constraint fk id fo...

mysql新增外來鍵

為已經新增好的資料表新增外來鍵 語法 alter table 表名 add constraint fk id foreign key 你的外來鍵欄位名 references 外表表名 對應的表的主鍵欄位名 例 alter table tb active add constraint fk id fo...

mysql新增外來鍵

為已經新增好的資料表新增外來鍵 語法 alter table 表名 add constraint fk id foreign key 你的外來鍵欄位名 references 外表表名 對應的表的主鍵欄位名 例 alter table tb active add constraint fk id fo...