首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

哪个命令可以显示Mysql中外键的ON reference_option?

在MySQL中,可以使用以下命令来显示外键的ON reference_option:

代码语言:txt
复制
SHOW CREATE TABLE table_name;

其中,table_name是要查询的表名。执行该命令后,会返回该表的创建语句,其中包含了外键的定义信息,包括ON reference_option。

在返回的创建语句中,可以查找类似以下的语句:

代码语言:txt
复制
CONSTRAINT `fk_name` FOREIGN KEY (`column_name`) REFERENCES `referenced_table` (`referenced_column`) ON DELETE reference_option ON UPDATE reference_option

其中,fk_name是外键的名称,column_name是当前表中的列名,referenced_table是被引用的表名,referenced_column是被引用表中的列名,reference_option表示外键的ON reference_option。

常见的reference_option取值包括:

  • CASCADE:当被引用的行被删除或更新时,自动删除或更新当前表中的对应行。
  • SET NULL:当被引用的行被删除或更新时,将当前表中的对应列设置为NULL。
  • RESTRICT:当被引用的行被删除或更新时,阻止删除或更新当前表中的对应行。
  • NO ACTION:与RESTRICT相同,用于与其他数据库兼容。

根据具体的业务需求和数据完整性要求,可以选择合适的reference_option

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

mysql常见建表选项和约束

约束主要是防止非法数据进入表中,保证数据正确性和一致性,统称为数据完整性 约束也可以防止一个表被删除 MySQL约束保存在information_schema.table_constraints中...constraint pk_id_name primary_key(id,name) constraint可以进行重命名,但是在数据字典中,主键名还是显示primary foreign key外约束...参照完整性约束,保证一个或两个表之间参照完整性,外是构建于一个表两个字段或者是两个表两个字段之间参照关系 注意: 具有外约束值不能随便给,必须满足外所引用主键取值 一张表中可以定义多个外...] reference_option: RESTRICT | CASCADE | SET NULL | NO ACTION check约束 MySQl可以使用check约束,但是check...Oracle中国可以使用check约束,有相应作用 mysql> create table test_ck( -> id int check(id>0) -> ); mysql

13510

三十四、外约束

一、参照完整性 参照完整性要求关系中不允许引用不存在实体。在 MySQL 中设置参照完整性方式是使用 外约束 。...例如插入一条stu_no 编号为 2021003 学生分数,这时 MySQL 将会报错。...二、外约束 上一小节提到了外约束,那么什么是外约束呢?外约束是用于保持主表(父表)和从表(子表)数据一直。在 MySQL 中只有 InnoDB 存储引擎支持外约束。...[ON DELETE reference_option] [ON UPDATE reference_option] 在语法中 reference_option 指的是外约束条件,外约束条件包括如下五种选项...: 不采取任何动作; SET DEFAULT:使用默认约束 例子: 前述学生表分数表可以这样创建: # 创建学生表 create table student( stu_no varchar

1.8K20
  • MySQL】外约束介绍

    官方文档: https://dev.mysql.com/doc/refman/5.7/en/create-table-foreign-keys.html 1.外作用: MySQL通过外约束来保证表与表之间数据完整性和准确性...2.外使用条件 1.两个表必须是InnoDB表,MyISAM表暂时不支持外(据说以后版本有可能支持,但至少目前不支持) 2.外列必须建立了索引,MySQL 4.1.2以后版本在建立外时会自动创建索引...,但如果在较早版本则需要显示建立; 3.外关系两个表列必须是数据类型相似,也就是可以相互转换类型列,比如int和tinyint可以,而int和char则不可以。...[ON DELETE reference_option] [ON UPDATE reference_option] reference_option: RESTRICT | CASCADE...| SET NULL | NO ACTION | SET DEFAULT 该语法可以在 CREATE TABLE 和 ALTER TABLE 时使用,如果不指定CONSTRAINT symbol,MYSQL

    5K20

    约束

    约束 foreign key 外约束要求: 父表和字表必须使用相同存储引擎,禁止使用临时表; 数据库引擎只能是InnoDB; 外列和参照列必须具有相似的数据类型,数字长度或者是否有符号必须一样...,字符长度可以不不一样; 外列和参照列必须创建索引,参照列没有索引,mysql回自动创建索引; ----------- 下面创建两个数据表 1(父表)省份表两个字段 id (主键) 省份名称 2(子表...,相当于省份表 中id,那么用户表省份编号与省份表id字段类型必须一样; ------------- 添加外语法 ALTER TABLE tbl_name ADD [CONSTRAINT...[ON DELETE reference_option] [ON UPDATE reference_option] --------- 查看索引; show indexes from test2...); ---------- 外约束参照操作:也据说说父表与字表建立了关联或者约束,这个时候父表进行操作时候,子表也可以设置相应操作; cascade;从父表删除时候,字表相应字段删除 Set

    2K90

    MySQLsystem命令显示是服务端信息?

    MySQLsystem命令很多时候可以方便查看操作系统上相关信息,例如查看文件,查看网卡信息,查看日志信息等,没必要退出MySQL客户端。...但是,有些同学会疑惑,如果我是远程连接其他机器数据库,那么system返回结果是当前客户端本机还是服务端机器上信息呢? 1....system命令演示 很多时候,我们在MySQL客户端操作时候,会查看操作系统上一些信息,但是又不想频繁退出客户端。...例如使用source命令执行多个sql文件时,如果文件比较多且文件名无规律,需要逐个source命令执行时,可以通过system ls命令查看文件名。...同样在刚才目录下,远程连接其他数据库 可以看到,数据库版本变换了,system ls结果是没变。 再看一下返回IP是多少 结果看出,涛声依旧,也就是说返回依旧是客户端所在主机信息。

    57720

    Mysql约束

    是用来实现参照完整性,不同约束方式将可以使两张表紧密结合起来,特别是修改或者删除级联操作将使得日常维护工作更加轻松。...外主要用来保证数据完整性和一致性 两个表必须是InnoDB表,MyISAM表暂时不支持外列必须建立了索引,MySQL 4.1.2以后版本在建立外时会自动创建索引,但如果在较早版本则需要显示建立...; 外关系两个表列必须是数据类型相似,也就是可以相互转换类型列,比如int和tinyint可以,而int和char则不可以; 创建外语法: 代码如下 复制代码 [CONSTRAINT...[ON DELETE reference_option] [ON UPDATE reference_option] reference_option: RESTRICT | CASCADE | SET...前一种情况,在外定义中,我们使用ON UPDATE CASCADE ON DELETE RESTRICT; 后一种情况,可以使用ON UPDATE CASCADE ON DELETE CASCADE

    5.8K81

    MySQL约束

    什么是外检约束 外其实很好理解,简单说就是两张表建立一个连接关系。这里我们那主表A和副表B举例,我A表中有用户信息,B表中有用户订单信息。...要是数据完整对应起来,肯定是需要把两张表关联起来,我们因此会在B表中村一个A表字段,常见我们存是A表主键ID外。 外检约束要求 .MySQL数据表存储引擎必须为Innodb。....主表和副表关联字段数据类型一致。 .字段不能设置为NULL。 .主表中字段需为主键。 外约束作用 保证数据完整性和一致性....[ON DELETE reference_option] [ON UPDATE reference_option] reference_option: RESTRICT | CASCADE | SET...SET NULL: 从父表中删除或更新对应行,同时将子表中列设为空。注意,这些在外列没有被设为NOT NULL时才有效。

    5.9K20

    命令行下,Mysql显示各个端所使用字符集命令

    win10中,在命令行情况下,Mysql显示各个端所使用字符集命令: Microsoft Windows [版本 10.0.16299.64] (c) 2017 Microsoft Corporation...mysql> create database day28; Query OK, 1 row affected (0.01 sec) mysql> mysql> use day28; Database ...HY000): Incorrect string value: '\xB3\xAC\xBC\xB6\xB9\xDC...' for column 'userName' at row 1  #客户端传来数据编码是...gbk,而Mysql针对客户端默认使用是utf8,所以会报错 mysql> mysql> show variables like 'character%';  #显示各个端所使用字符集,只对当前对话窗口有用...针对默认结果集使用是utf8编码,而我们pc端使用是gbk编码,所以会报错 mysql> set character_set_results=gbk;  #设置Mysql针对数据返回结果集使用字符集为

    68920

    彩虹Kangle一脚本,是一款可以安装Kangle+Easypanel+MySQL+PHP集合Linux脚本

    脚本简介 彩虹Kangle一脚本,是一款可以安装Kangle+Easypanel+MySQL+PHP集合Linux脚本。...脚本本身集成:PHP5.3~8.2、MYSQL5.6~8.0,支持极速安装和编译安装2种模式,支持CDN专属安装模式。同时也对Easypanel面板进行了大量优化。...脚本中集成Linux工具箱,可一更换Yum源、更换DNS、设置Swap、同步时间、清理垃圾等 修改kangle二进制文件以提升错误页加载速度 EP基于原版优化内容 0.EP源码全解密并升级smarty...框架 1.SSL证书可同步到cdn节点 2.SSL配置页面新增"HTTP跳转到HTTPS"选项 3.SSL配置页面新增"开启HTTP2"选项 4.CDN可以给单个域名设置SSL证书 5.增加独立PHP...版本切换页面 6.EP管理员后台增加选项:默认PHP版本、允许域名泛绑定 7.修复带有空格文件名无法解压和重命名问题 9.CDN绑定域名可以自定义回源协议,增加tcp四层转发 10.优化防CC设置页面

    47520

    数据定义: CREATE、DROP、ALTER

    另一方面,如果所有的都是不同,你将在每个上损失 1 字节,如果该不是一个可以有 NULL 值。(在这种情况下,压缩后长度将存储在用于是否为 NULL 位元组中。)...这可以帮助 MySQL 优化程序区分哪个优先使用,同时更快地检测出重复 UNIQUE 。...查看章节 7 MySQL 表类型。 262 263 TIMESTAMP 显示尺寸必须是在 2 到 14 范围之内偶数。如果指定显示尺寸为 0 或超过 14,尺寸被强制设为 14。...ENABLE KEYS 可以被用来重建丢失索引。因为 MySQL 以特殊算法执行它,这将比一个接一个地插入索引要快得多,禁用可以很大程序上加速一个大批量插入。...所有的数据和表定义均被 移除,所以,一定要小心地使用这个命令! 422 423 在 MySQL 3.22 或更新版本中,你可以使用关键词 IF EXISTS 防止表不存在时发生错误。

    1.6K20

    【DB笔试面试398】Oracle数据库中,以下哪个命令可以删除整个表中数据,并且无法回滚()

    题目 Oracle数据库中,以下哪个命令可以删除整个表中数据,并且无法回滚() A、DROP B、DELETE C、TRUNCATE D、CASCADE A 答案 答案:C。...执行后会自动提交 3、表上索引大小会自动进行维护不同点分类DROPTRUNCATEDELETE是否删除表结构删除表结构及其表上约束,且依赖于该表存储过程和函数等将变为INVALID状态只删除数据不删除表定义...、约束、触发器和索引SQL命令类型DDL语句,隐式提交,不能对TRUNCATE和DROP使用ROLLBACK命令DML语句,事务提交(COMMIT)之后才生效,可以使用ROLLBACK语句撤销未提交事务删除数据是否放入回滚段...,经过TRUNCATE操作后表比DELETE操作后表要快得多日志产生少量日志少量日志大量日志是否可以通过闪回查询来找回数据否否是是否可以对视图进行操作是否是级联删除不能DROP一个带有ENABLE...外表不能TRUNCATE一个带有ENABLE外表,会报错ORA-02266可以DELETE一个带有ENABLE外表执行速度一般来说,DROP>TRUNCATE>DELETE,DROP和TRUNCATE

    4.8K20

    django 解决model中类写不到数据库中,数据库无此字段问题

    如果你遇到了这个错误–MySQL Strict Mode is not set for database connection ‘default’ 还有这种错误,models中代码 ? ?...'ENGINE': 'django.db.backends.mysql', 'NAME': 'mxshop', 'HOST': '127.0.0.1', 'PORT': '3306...解决方法,添上option和去掉逗号就ok了呗 去掉逗号之后删库创库,重新输入 python manage.py makemigrations python manage.py migrate 两条命令...这样就ok了 补充知识:django框架model中外不落实到数据库 在外字段参数中添加db_constraint=False即可,数据库中没有外关系,代码中依然可以按照正常外方式使用。...class Room(models.Model): status = models.IntegerField(default=1) 以上这篇django 解决model中类写不到数据库中,数据库无此字段问题就是小编分享给大家全部内容了

    2.3K30

    MySQL数据库编程基础入门2

    MySQL 8.0; 语法定义 语法定义说明: 1.SQL关键字不区分大小写,可以用任何字母大写(建议大写),每条语句后加上’;’结束; 2.在语法描述中,方括号 [ 关键字 ]表示可选关键字参数;...,插入时候可以指定NULL但是实际也是插入非NULL值; 主键约束:默认就是不能为空并且唯一,一张表只能有一个主键,常常供外使用 (2) 外约束 描述:外是搭配主键使用可以为空值(看做主键子集...字段,且uid字段必须是t1表主键 ); 注意事项: 主键是不可以有空值,而外可以有空值; MySQL [Demo]> desc t1; +-------+--------------+---...utf8; -- 指定其他存储引擎默认是innoDB 注意事项: 唯一约束列内容必须是唯一,不能出现重复情况; 唯一约束不可以作为其它表,但是可以有多个唯一约束字段; (5) 默认约束 描述...host -- 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost , 任意远程主机登陆使用通配符% password -- 该用户登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器

    1.4K10

    约束

    大家好,又见面了,我是你们朋友全栈君。 外作用:1.保证数据完整性、一致性,更可靠。      ...2.设置外约束两个表之间会有 父子关系 ,即字表中外字段取值范围 取决于 父表      3.设置外一定程度上降低了数据库速度      4.字表中外字段数据类型要与父表中数据类型一致...null | on action }]             [on update {restrict | cascade | set null | on action }]     该语法可以在...create table 和 alter table时使用,如果不指定 constraint 外键名 ,mysql会自动生成一个名字,可以通过 show create table 表名...alter table 表名 drop foreign key 外键名;   注意:删除外后发现 desc 查看索引标志还在,其实外也是一种索引,需要将外索引删除才可以

    1.7K20

    MySQL数据库(五):索引

    一.什么是索引 相当于一本数目录 二.使用索引好处和坏处 好处:加快查找速度 坏处:占用磁盘空间 三.查看索引命令 命令格式: show index from  表名; 四.索引算法 Index_type...(性别 班级 名字) 1.2 使用规则 -字段值可以重复 -一个表中可以有多个Index字段 -字段可以为null 1.3 普通索引在表中标识:MUL 1.4 设置普通索引命令格式 添加...字段 用来储存表中记录编号 要求 字段值不允许重复且不可以插入null值 并让id字段值自动增长 mysql> alter table  t30 modify id int(2) not null...key 属性 mysql> alter table t22 drop primary key; 4.复合主键(表中多个字段同时做主键字段,必须再建表时创建) -复合主键字段值不同时重复就可以...) References 表B(字段名) ON UPDATE CASCADE ON DELETE CASCADE 5.foreign key 外(务必掌握) 1.1 说明:让当前表中外字段

    1.9K90

    搞懂 MySQL Explain 命令之前不要说自己会SQL优化

    高广超,https://www.jianshu.com/p/ea3fc71fdc45 MySQL explain 命令是查询性能优化不可缺少一部分,该文主要讲解 explain 命令使用及相关参数说明...possible_keys 显示查询使用了哪些索引,表示该索引可以进行高效地查找,但是列出来索引对于后续优化过程可能是没有用 key key 列显示 MySQL 实际决定使用(索引)。...key_len key_len 列显示 MySQL 决定使用长度。如果是 NULL,则长度为 NULL。使用索引长度。在不损失精确性情况下,长度越短越好 。...ref ref 列显示使用哪个列或常数与 key 一起从表中选择行。 rows rows 列显示 MySQL 认为它执行查询时必须检查行数。注意这是一个预估值。...Extra Extra 是 EXPLAIN 输出中另外一个很重要列,该列显示 MySQL 在查询过程中一些详细信息,MySQL 查询优化器执行查询过程中对查询计划重要补充信息。

    62630

    一篇搞懂explain命令

    MySQL explain 命令是查询性能优化不可缺少一部分,该文主要讲解 explain 命令使用及相关参数说明。...possible_keys 显示查询使用了哪些索引,表示该索引可以进行高效地查找,但是列出来索引对于后续优化过程可能是没有用 key key 列显示 MySQL 实际决定使用(索引)。...key_len key_len 列显示 MySQL 决定使用长度。如果是 NULL,则长度为 NULL。使用索引长度。在不损失精确性情况下,长度越短越好 。...ref ref 列显示使用哪个列或常数与 key 一起从表中选择行。 rows rows 列显示 MySQL 认为它执行查询时必须检查行数。注意这是一个预估值。...Extra Extra 是 EXPLAIN 输出中另外一个很重要列,该列显示 MySQL 在查询过程中一些详细信息,MySQL 查询优化器执行查询过程中对查询计划重要补充信息。

    48730

    MySQL触发器详细教学与实战分析

    如果MySQL存储过程不了解小伙伴,可以参考此文面向MySQL存储过程编程,文章中详细讲解了MySQL存储过程优势和语法等等,相信你会在其中得以收获。...# 设置MySQL执行结束标志,默认为;2delimiter // 五、触发器基本使用 5.1 基本使用步骤 首先,我先展示一下创建两张表,因为创建表很简单,这里我没有提供库表操作SQL命令。...11 # 更新学生数量(cid为tb_class表中主键,cno为tb_stu表中外) 12 update tb_class set stuNo = stuNo + 1 where cid...删除一个班级级别比如:删除小班之前要把小班内所有学生也被删除了,因为两个表是主外关联。如果只删除了小班,而没有删除小班内所有学生,那么原小班内所有学生现在属于哪个班级呢,就不知道了吧!...解决触发器冲突 为解决这个场景触发器冲突问题,我们只能取舍一个触发器。于是,就通过命令删除了删除学生案例中使用那个触发器,删除后删除班级就可以成功执行触发了!

    1.3K10
    领券