mysql外键和自动自增

1.外键

MySQL 支持外键(允许跨表交叉引用相关数据)和外键约束(有助于保持相关数据的一致
性)。
外键关系涉及一个包含初始列值的父表,以及一个包含引用父列值的列值的子表。在子表上定
义了外键约束。

1.1.定义父表

定义一个parent表,内有id(int),主键为id

CREATE TABLE parent (
id INT NOT NULL,
PRIMARY KEY (id)
);

添加数据

insert into parent values(1);

 

 1.2.添加子表

CREATE TABLE child (
id INT,
parent_id INT,
FOREIGN KEY (parent_id)  约束字段parent_id
REFERENCES parent(id)  参考 parent表中的id
);

添加数据 

 

 如果我们添加一个id=2,parent_id=2,行不行?

这是不行的

必须要在parent中添加id=2才能添加成功

并且在父表中是无法删除已经约束数据

 

1.3.同步

CREATE TABLE child (
id INT,
parent_id INT,
INDEX par_ind (parent_id),
FOREIGN KEY (parent_id)
REFERENCES parent(id)
ON UPDATE CASCADE  同步更新
ON DELETE CASCADE  同步删除
);

 添加数据

INSERT INTO child (id,parent_id) VALUES(1,1),(2,1),(3,1);

 修改parent

 同步删除

2.自增

CREATE TABLE animals (
id MEDIUMINT NOT NULL AUTO_INCREMENT,#这是递增
name CHAR(30) NOT NULL,
PRIMARY KEY (id)
);

添加数据 

 insert into animals (name) values ('dog'),('cat'),('lax');

并且他会从最高位开始递增

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值