【mysql】给一张表添加外键的四种方法

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

一、添加外键

添加外键约束名字一定不能重复
如何添加外键

方法一:直接在属性值后面添加

create table score(
cscore int(11),
st_id int(50) references student(id),
cs_id int(30) references classes(id),
primary key(st_id,cs_id)
);

方法二:

create table score(
cscore int(11),
st_id int(50),
cs_id int(30),
primary key(st_id,cs_id),
FOREIGN KEY (st_id) REFERENCES student(id),
FOREIGN KEY (cs_id) REFERENCES classes(id)
);

方法三:添加约束

create table score(
cscore int(11),
st_id int(50),
cs_id int(30),
primary key(st_id,cs_id),
CONSTRAINT `FK_ID_ST` FOREIGN KEY (st_id) REFERENCES student(id),
CONSTRAINT `FK_ID_CS` FOREIGN KEY (cs_id) REFERENCES classes(id)
);

方法四:在表的定义外进行添加

alter table 表名 add constraint FK_ID foreign key(你的外键字段名) REFERENCES 外表表名(对应的表的主键字段名);

二、添加主键

1.创建表的时候直接在表字段后,跟primary key关键字。(一张表有且只能有一个主键,主键具有唯一性。)

CREATE TABLE tb
(
id INT IDENTITY(1,1) PRIMARY KEY,
name VARCHAR(20)
)

2.在创建表的时候在所有字段后面使用primary key(主键字段列表)来创建主键(如果有多个字段作为主键被称为复合主键)

*CREATE TABLE table_test(
id INT NOT NULL,
name VARCHAR(20) NOT NULL,
address VARCHAR(20),
PRIMARY KEY(id)
);

复合键这样设置:

CREATE TABLE table_test(

user_id INT NOT NULL,

user_name VARCHAR(20) NOT NULL,

user_address VARCHAR(20),

PRIMARY KEY (user_id, user_name)

);*

3.在表创建好之后添加主键(表本身没有主键):

alter table 表名 add primary key(字段列表)
ALTER TABLE Employees
ADD CONSTRAINT PK_EmployeesID PRIMARY KEY (EmployeeID)

给表中没有的字段添加主键:

ALTER TABLE (表名) ADD id INT(16) NOT NULL
PRIMARY KEY AUTO_INCREMENT FIRST;

注:主键必须非空,自增需要自己设置。如下:

alter table(表名) modify id integer auto_increment

我们光说了添加主键,那么删除主键怎么办?文章来源地址https://www.toymoban.com/news/detail-509783.html

alter (表名) DROP PRIMARY KEY

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

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

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

相关文章

  • mysql一张表可以创建多少字段

    在mysql中,每个数据库最多可创建20亿个表,一个表允许定义1024列,每行的最大长度为8092字节(不包括文本和图像类型的长度)。当表中定义有varchar、nvarchar或varbinary类型列时,如果向表中插入的数据行超过8092字节时将导致Transact-SQL语句失败,并产生错误信息。SQL对每个表中行

    2023年04月09日
    浏览(34)
  • 使用finksql方式将mysql数据同步到kafka中,每次只能同步一张表

    使用finksql方式将mysql数据同步到kafka中,每次只能同步一张表

    2024年02月11日
    浏览(40)
  • 主键和外键的含义及区别

    表中经常有一个列或多个列的组合,其值能唯一的标识表中的每一行。这样的一列或多列称为表的主键。 外键:用来表示表与表之间联系,是表中的一个列。 主键和外键都是用于维护数据库完整性的一种机制。 1、主键是唯一标识一条记录,不能重复,不允许为空;而外键可

    2024年02月12日
    浏览(38)
  • 将一张表的数据更新到另外一张表中

    update 更新表 set 字段 = (select 参考数据 from 参考表 where 更新表.id = 参考表.id) update 更新表,参考表 set 更新表数据 = 参考表数据 where 更新表.id = 参考表.id

    2024年02月10日
    浏览(67)
  • MySQL批量更新的四种方法

    最近做一个需求,更新3w条数据,一个一个update去更新的,结果花了80分钟,这样性能上很差,也容易阻塞,所以就找了一些MySQL批量更新的方式,在此记录一下 这种更新会将其它字段更新为默认值,因为它是先将重复记录删掉再更新,谨慎使用 1 2 replace into ` user ` (id,age) va

    2024年02月16日
    浏览(48)
  • 【mysql】事务的四种特性的理解

    🌇个人主页:平凡的小苏 📚学习格言:命运给你一个低的起点,是想看你精彩的翻盘,而不是让你自甘堕落,脚下的路虽然难走,但我还能走,比起向阳而生,我更想尝试逆风翻盘 。 🛸 Mysql专栏 : Mysql内功修炼基地 家人们更新不易,你们的👍点赞👍和⭐关注⭐真的对我

    2024年02月12日
    浏览(46)
  • MySQL在Linux上的四种安装方式

    目录 前言 一、仓库安装 二、本地安装 三、容器安装 四、源码安装 博主的配置信息: Windows版本:Win10 VMware虚拟机版本:Vmware Workstation Pro 17 Linux版本:Red Hat Enterprise Linux 9.1 MySQL版本:MySQL Community Server 8.0.32 保证Linux的正常联网以及配置yum仓库。 可以在MySQL官网地址:https:

    2024年01月23日
    浏览(48)
  • mysql数据库limit的四种用法

    mysql数据库中limit子句可以被用于强制select语句返回指定的记录数。limit接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目;若果给定一个参数,则表示回记录行的最大

    2024年02月08日
    浏览(51)
  • sqlserver数据库中把一张表中的数据复制到另一张表中

    我们在使用ERP时经常会遇到,把老系统的单据直接拉过来使用,但是对应的数据却没有,为空,这时候就需要把老系统数据库里的数据复制一份到新系统里,(方法如下) 1、如果是整个表复制表达如下: 2、如果是有选择性的复制数据表达如下: 3、一个数据库中的表中的数

    2024年02月12日
    浏览(49)
  • springboot使用aop排除某些方法,更新从另外一张表,从另外一张表批量插入

    在Spring Boot中使用AOP时,如果想要排除某些方法不被切面所影响,可以通过使用切面表达式中的!within来实现。以下是一个示例: 在上面的示例中,@Before注解用于定义切面的beforeAdvice方法。execution(* com.example.service. . (…))表示切入所有com.example.service包下的方法。而!wit

    2024年02月13日
    浏览(49)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包