17-mysql --外键创建和删除

创建外键

*创建外键的三种方式*
方式一:
ALTER TABLE Person ADD FOREIGN KEY(job_id) REFERENCES jobs(id);
方式二:
ALTER TABLE Person ADD CONSTRAINT FOREIGN KEY(job_id) REFERENCES jobs(id);
方式三:
ALTER TABLE Person ADD CONSTRAINT person_job_FK FOREIGN KEY(job_id) REFERENCES jobs(id);

以上三种方式都可以为Person表的job_id栏位添加外键约束,不同的是前两种方式没有为外键起名字,方式三为外键起了名字。

删除外键

删除外键需要执行的两步操作:
1.外键解绑
2.删除外键字段
重要:外键解绑需要知道外键的名称,方式一和方式二没有声明外键名称,只有方式三添加外键名称

先对方式三外键解绑,删除:

1 外键解绑,外键声明时,外键名称为 person_job_FK 
ALTER TABLE Person DROP FOREIGN KEY person_job_FK;
2 删除字段
ALTER TABLE Person DROP COLUMN job_id;

那么方式一和方式二没有外键名称该怎么办呢?
其实我们在添加外键约束的时候如果没有定义外键名称mysql会自动为我们添加外键名称,
通过 show create table Person语句查找,将查找到的内容复制到出来,即可看到外键名称

在这里插入图片描述

CREATE TABLE `person` (
  `id` int(11) NOT NULL,
  `name` varchar(20) DEFAULT NULL,
  `age` int(11) DEFAULT '20',
  `country` varchar(30) NOT NULL,
  `isMarried` tinyint(1) DEFAULT '0',
  `job_id` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `name` (`name`),
  KEY `job_id` (`job_id`),
  CONSTRAINT `person_ibfk_1` FOREIGN KEY (`job_id`) REFERENCES `jobs` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

我们看到外键名称为:person_ibfk_1
此时就可以解绑和删除了

ALTER TABLE Person DROP FOREIGN KEY person_ibfk_1;//解绑外键约束
ALTER TABLE Person DROP COLUMN job_id;//删除字段
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值