mysql 外鍵的添加與刪除

首先,對於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 查看

image

可以看出系統自動給一個外鍵約束名稱“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 查看

image

外鍵約束名爲:FK_SS_ASC_VCC

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

3.刪除外鍵

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

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

發佈了60 篇原創文章 · 獲贊 8 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章