Mysql添加外键的方式

这篇具有很好参考价值的文章主要介绍了Mysql添加外键的方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Mysql添加外键的几种方式

注意:添加外键是给从表添加(即子表)
父表是主表

方法一:
创建表之前:

FOREIGN KEY (子表id) REFERENCES 关联表名(外主表id)

例如

  create table emp( 			
  	e_id int auto_increment primary key, 			
  	ename varchar(50) not null, 			
  	age int, 			job varchar(20),
  	salary int, 			
  	entrydate date, 			
  	managerid int, 			
  	dept_id int,
  	FOREIGN KEY (dept_id) REFERENCES dept(id) 	
  );

方法二:

创建表后添加:

ALTER TABLE 表1 ADD FOREIGN KEY (从表的外键) REFERENCES dept(主表的主键);

 例如:
 		ALTER TABLE emp ADD FOREIGN KEY (dep_id) REFERENCES dept(id);

注意:

主表(dept)存在从表(emp),从表引用了外键,不能直接删除(主表)

DROP TABLE dept; --删除失败

在删除表的时候,如果存在外键引用,则必须先删除从表(也就是把存在相关外键约束的表全部删掉),才能删除主表。
以上的外键都是物理外键,属于数据库级别的引用,不推荐使用,使用这个会造成数据耦合度大大增加。

主键:

是唯一标识一条记录,不能有重复的,不允许为空,用来保证数据完整性

外键:

是另一表的主键, 外键可以有重复的, 可以是空值,用来和其他表建立联系用的。所以说,如果谈到了外键,一定是至少涉及到两张表。

注意:

1、外键字段在创建的时候就应该与主表的类型完全一致(长度等等),否则创建外键会报错;

2、外键表是不能插入主表不存在的数据(该数据指的是与主表主键或从表外键的数据)。–例如部门号只有1,2,3,4,从表插入数据时外键值为5就会产生错误
——>即外键表的外键约束不能随意取值

3、当修改了主表的数据后,关联的外键表的外键约束已经实现了自动修改。

加constraint和不加的区别

当不加constraint,系统将自动给约束起名字,不好记住。 加constraint,可以按照自己的意图给约束起名字。文章来源地址https://www.toymoban.com/news/detail-448305.html

到了这里,关于Mysql添加外键的方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • jQuery之添加节点的几种方式

    目录 一、append() 1、基本使用 2、获取一个dom节点然后通过追加到指定元素里面,相当于把这个元素剪切,然后作为追加指定元素中的最后一个子元素 二、prepend() 三、before() 四、after() 五、appendTo() 1、基本使用 把元素追加到父元素里面,并且是最后一个 2、获取一个dom节点然

    2024年02月09日
    浏览(56)
  • 把代码添加到git库的几种方式

    把一个新的代码工程提交到git服务器上,有几种情况: 1)先有git库,后添加代码:在服务器上创建一个空仓库,本地拉取下来。创建、编写源文件后,提交代码。 2)已有本地代码,添加到远程代码库:本地已经创开发好代码,在代码目录中init一个本地git库,然后把git远程

    2024年02月08日
    浏览(95)
  • 使用Java将图片添加到Excel的几种方式

    使用POI,依赖如下 Java代码如下,运行该程序它会在桌面创建 ImageLinks.xlsx 文件。 点击它会自动打开浏览器访问设置的超链接 使用POI 下面是java代码 运行代码之后会在桌面生成文件 ExcelWithImage.xlsx 可以看到图片插入到了单元格中 但是尺寸太大了并且占了n行n列,下面设置成占

    2024年01月21日
    浏览(46)
  • 使用css和js给按钮添加微交互的几种方式

    在现实世界中,当我们轻弹或按下某些东西时,它们会发出咔嗒声,例如电灯开关。有些东西会亮起或发出蜂鸣声,这些响应都是“微交互”,让我们知道我们何时成功完成了某件事。在本文中,我们将学习向网页按钮添加微交互的几种简单方法。 微交互是用户界面上的小交

    2024年02月14日
    浏览(51)
  • 将VSCode添加至右键的菜单栏

    1、打开运行界面: Win + R 2、在弹出的运行窗口中输入 regedit ,点击确认。 1、依次找到 HKEY_CLASSES_ROOT * shell 目录 2、右键 shell 文件夹,选择 新建 - 项 更改新建的文件夹名字为Open with VS Code(没有具体意义,就是一个方便辨认的文件夹名) 3、点击刚刚新建的文件夹 Open With VS C

    2024年02月04日
    浏览(47)
  • MySQL几种创建索引的方式

    一、创建表时创建索引 二、表创建好后创建索引 1、通过Alter创建索引 ①PRIMARY  KEY(主键索引)         mysql ALTER  TABLE  `table_name`  ADD  PRIMARY  KEY (  `column`  )  ②UNIQUE(唯一索引)         mysql ALTER  TABLE  `table_name`  ADD  UNIQUE (`column` )  ③INDEX(普通索引)         mysql ALT

    2024年02月15日
    浏览(39)
  • MySQL加密的几种常见方式

    MySQL提供了多种加密方式来保护数据的安全性。下面是几种常见的MySQL加密方式: 密码加密: MySQL5.7及以上版本使用SHA-256算法对密码进行加密。这种加密方式更安全,可以防止密码泄露。 之前的MySQL版本使用SHA-1算法进行密码加密。这种加密方式相对较弱,不建议使用。 数据

    2024年02月09日
    浏览(49)
  • 错误 1452:无法添加或更新子行:外键约束失败

    #1452 - Cannot add or update a child row: a foreign key constraint fails (`goaread`.`views`, CONSTRAINT `views_ibfk_1` FOREIGN KEY (`source_id`) REFERENCES `blogs` (`id`) ON DELETE CASCADE ON UPDATE CASCADE) 报错的原因大概分为三种: 1)原因一: 添加的外键列与另一个表的唯一索引列(一般是主键)的数据类型不同 2)原

    2024年02月05日
    浏览(40)
  • 35.MySQL导出数据的几种方式

    1.导出全表数据。 select * from test into outfile \\\'/tmp/a.sql\\\'; 2.导出某个数据库下的表。 --secure-file-priv=\\\'\\\'  mysqldump -T /data/backup -u root -prootroot --set-gtid-purged=OFF  test 将test数据库导出到:backup目录下。 3.导出自定义格式的文件。 mysql -uroot -prootroot -e \\\"select * from t2;\\\" test t2.sql  id    nam

    2024年02月04日
    浏览(47)
  • Mysql关联查询的几种方式(详解)

    在关系型数据库中,要进行多表查询,一般都会使用join连接。join连接的本质其实类似与集合的交并操作,Mysql实现关联查询常见的几种方式如下; 目录 1、左连接 2、右连接 3、内连接 4、全连接 5、左外连接 6、右外连接 7、全外连接 本次测试表结构和数据: A表 B表   概念说

    2024年02月08日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包