17-mysql --外键创建和删除
程序员文章站
2024-03-06 08:48:43
...
创建外键
*创建外键的三种方式*
方式一:
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;//删除字段
上一篇: MySQL基础知识总结(三):单表查询
下一篇: Android 指纹识别详解及实现方法