mysql设置外键按钮_MySQL设置外键

CREATE DATABASE `studySQL` DEFAULT CHARACTER SET UTF8 COLLATE UTF8_GENERAL_CI;

USE `studySQL`;

SET NAMES UTF8;

CREATE TABLE IF NOT EXISTS `cg_topics`

(

`topic_id` TINYINT NOT NULL AUTO_INCREMENT PRIMARY KEY,

`topic_name` VARCHAR(200) NOT NULL DEFAULT 'topic' COMMENT '栏目名'

)ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT '栏目';

INSERT INTO `cg_topics` VALUES (1,'心灵鸡汤'),

(2,'奇闻异事'),

(3,'生活花絮');

CREATE TABLE IF NOT EXISTS `cg_articles`

(

`article_id` TINYINT NOT NULL AUTO_INCREMENT PRIMARY KEY,

`topic_id` TINYINT NOT NULL,

`article_title` VARCHAR(200) NOT NULL DEFAULT 'title' COMMENT 'title',

FOREIGN KEY (`topic_id`) REFERENCES `cg_topics`(`topic_id`)

)ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT '文章';

INSERT INTO `cg_articles` VALUES (1,1,'望庐山瀑布'),

(2,1,'静夜思'),

(3,1,'菊花台'),

(4,2,'望庐山瀑布'),

(5,2,'静夜思'),

(6,3,'菊花台');

这段SQL代码能够设置FOREIGN KEY。

之后,我执行SQL语句

DELETE FROM `cg_topics` WHERE `topic_id`=1;结果是

0818b9ca8b590ca3270a3433284dd417.png

我原以为,FOREIGN KEY的作用是,删除parent row之后,在另一个表中以该字段为FOREIGN KEY的数据会被自动删除。实际运行结果表明,外键的作用是,在另一个表存在以该外键为外键的数据的情况下,不能删除parent row。

清空外键为某个值的所有数据后,再尝试在另一个表中删除此外键值,SQL语句

DELETE FROM `cg_articles` WHERE `topic_id`=3;

DELERE FROM `cg_topics` WHERE `topic_id=3`;可以正确执行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值