mysql先删除外键再添加外键_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 查看

06a6c610192172f23855ce365a2970fb.gif

可以看出系统自动给一个外键约束名称“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 查看

e57bac9e79d9594413dd756f2804f545.gif

外键约束名为:FK_SS_ASC_VCC

注:添加外键约束时若没有指定外键约束的名称,则系统会自动添加外键约束名:表名_ibfk_n(表示第n个外键约束)

3.删除外键

根据外键约束的名字来删除外键

alter table ss_accesscode drop foreign key 外键约束名称;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值