Mysql添加外键

本文介绍了在MySQL中如何为已创建的表添加外键约束,包括两种方法:一种是在创建表时直接添加,另一种是通过ALTER TABLE语句后期添加。同时,文章强调了添加外键时需注意的数据类型匹配、索引要求以及字符集和排序规则的一致性。此外,还提供了添加主键的SQL语句示例。
摘要由CSDN通过智能技术生成

项目场景:

当mysql表已经创建好时,忘了给表添加外键约束.


问题描述:

添加外键的方式:

方式一:还未创建表时:FOREIGN KEY (此表id) REFERENCES class(外表id)

CREATE TABLE student(
        sid INT AUTO_INCREMENT,
        sname VARCHAR(10),
        s_cid INT,
        PRIMARY KEY(sid),
        FOREIGN KEY (s_cid) REFERENCES class(cid)
);


方式二:已经创建表:

ALTER TABLE 表1 ADD FOREIGN KEY (表1的键) REFERENCES tbl_dept(表2的键);

例如: ALTER TABLE tbl_emp ADD FOREIGN KEY (dep_id) REFERENCES tbl_dept(dept_id);


其它问题:

添加外键需要注意:外键和引用键中的相应列必须具有类似的数据类型。整数类型的大小和符号必须相同。字符串类型的长度不需要相同。对于非二进制(字符)字符串列,字符集和排序规则必须相同。InnoDB允许外键引用任何索引列或列组。但是,在引用的表中,必须有一个索引,其中引用的列以相同的顺序作为第一列列出。

添加索引:

alter table orders add constraint   主键的新名字    primary key   (要改成主键的列的名字);
alter table tbl_dept add constraint   dept_id    primary key   (dept_id);

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值