首先,對於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 外鍵約束名稱;