mysql如何添加一个表的外键

1:创建一个父表,主键作为子表的外键:

1 create table province(
2     pId int primary key auto_increment,
3     pName varchar(20)
4 );

2:创建子表,外键是父表的主键:

1 create table user(
2 userId int primary key auto_increment,
3 userName varchar(40),
4 pid int,
5 foreign key(pid) references province(pId)
6 );

给一张表添加外键,即给子表的外键添加主键的规则:
在子表声明一个字段pid int,用于作为子表的外键,foreign key(子表的外键字段) references 父表的表名(父表的主键的字段名);

3:当创建好数据表时添加外键约束:

alter table user add foreign key(pid) references province(pId);

alter table 子表的数据表名 add foreign key(子表的外键名称) references 父表的数据表名称(父表的主键名称);

时间: 2024-07-31 10:58:24

mysql如何添加一个表的外键的相关文章

mysql数据库-两张表没有外键 要计算每个月份poundage,proCharge这两钱的总和

问题描述 两张表没有外键 要计算每个月份poundage,proCharge这两钱的总和 SELECT SUM(poundage),SUM(proCharge) from satisfy,borrowinfo where DATE_FORMAT(satisfydate,'%Y')=DATE_FORMAT(NOW(),'%Y') and DATE_FORMAT(startTime,'%Y')=DATE_FORMAT(NOW(),'%Y') mysql数据库,sql语句改怎么写 解决方案 要看你的表

数据-Mysql中设置表的外键的时候报错

问题描述 Mysql中设置表的外键的时候报错 这个是原句子: ALTER TABLE emp ADD CONSTRAINT id_fk FOREIGN KEY (deptno) REFERENCES Dept (deptno); 就是想把emp表的deptno设置为外键,该列的数据引用Dept表的主键列deptno的数据.然后,报错信息如下: Cannot add or update a child row: a foreign key constraint fails (emp.#sql-1a

hibernate的关联关系,是否数据库表中有外键没有关系?

问题描述 hibernate的关联关系,是否数据库表中有外键没有关系? hibernate的关联关系,是否数据库表中有外键没有关系?昨天使用了hibernate做了一个多对一的关系,然后在做数据库字段的时候,一开始并没有去建立外键约束,只是把关联字段的信息放了上去,然后CRUD操作都没问题,然后看了一篇帖子,上面看到数据库表中有外键约束,这时候才想起来这个事情,我加了外键以后也没什么问题,再去掉还是没有问题,那么这里是加还是不加外键呢?hibernate自己处理好了吗?有什么区别吗?以后是加好还

MySQL · 捉虫动态 · 并行复制外键约束问题二

背景 并行复制可以大大提高备库的 binlog 应用速度,内核月报也多次对并行复制特性进行介绍,感兴趣的朋友可以回顾下:5.6 并行复制实现分析.5.6 并行复制恢复实现 和 5.6并行复制事件分发机制. 在早期的内核月报,有一篇 并行复制外建约束问题,介绍阿里在 5.5 版本中自己实现并行复制时遇到的外键约束问题,本文接着前作继续介绍并行复制外键约束问题,这次场景不一样,并且目前官方 5.6 最新版本(5.6.30)中也有这个问题. 问题描述 一般情况的复制是 A->B 这样一主一备,本文要描

java-问题 如何用Java程序实现,父表的主键插入到子表的外键中?

问题描述 问题 如何用Java程序实现,父表的主键插入到子表的外键中? 需求从excel导入数据到mysql数据库,然后父表的主键是自增列,插入数据同时把主键插入子表的外键中(我已经把主表的数据插入了)

mysql-请问数据库表中可以在一个表里面有两个关联同一个表的外键吗?

问题描述 请问数据库表中可以在一个表里面有两个关联同一个表的外键吗? 具体是这样的: 我有一个用户表user,一个好友表fans. fans中有三个字段 id,user_id,fans_id,其中user_id和fans_id都是跟user表的id关联的外键,我发现这样会报错. 可是用户跟好友的信息又要与用户表的信息关联,请问各位大神,怎样才不会报错或者有什么好一点的解决办法吗? 解决方案 可以的 FOREIGN KEY (user_id) REFERENCES user(id), FOREIG

mysql-mySql多表查询,有中间表和外键关联

问题描述 mySql多表查询,有中间表和外键关联 select a.id,a.name, sum(case when d.STATUS=0 then 1 else 0 end) as 待处理, sum(case when d.STATUS=1 then 1 else 0 end) as 带跟进, sum(case when d.STATUS=2 then 1 else 0 end) as 已结束, sum(case when d.STATUS=3 then 1 else 0 end) as 已完

优化 加载 select-在做Web开发,select选择框的内容是表的外键,如何优化使得页面加载的速度变快

问题描述 在做Web开发,select选择框的内容是表的外键,如何优化使得页面加载的速度变快 (手机端网页)两张表:User表,Artical表.User表是Artical表的外键,我需要在页面上添加数据,但Username表里的内容很多,select选择框加载很慢,并且这个select可以不显示. 求解怎么进行优化?

Oracle批量执行sql语句之禁用所有表的外键_oracle

在转移数据库,进行数据导入的时候,遇到一件麻烦事,就是表间外键约束的存在,导致insert频频报错,批量执行sql语句又是顺序执行,没办法我只好手动输入. 然后输入到一半灵光一闪,为什么不先把外键约束全部禁用先呢? 于是我百度到以下资料: oracle 删除(所有)约束 禁用(所有)约束 启用(所有)约束 执行以下sql生成的语句即可 1删除所有外键约束 select 'alter table '||table_name||' drop constraint '||constraint_name