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

使用foregin key contraint更新列可以锁定被引用的表吗?

使用foreign key constraint更新列不会锁定被引用的表。

Foreign key constraint是一种用于维护表之间关系的约束,它确保了引用表中的数据在被引用表中存在。当我们更新包含外键的列时,数据库会检查新的值是否满足外键约束,如果满足则更新成功,否则会抛出错误。

在更新包含外键的列时,并不会对被引用的表进行锁定。被引用的表可以继续进行读取和写入操作,只有在更新涉及到被引用表的数据时,数据库会检查外键约束。

这种设计可以保证数据的完整性和一致性,同时允许并发操作。如果需要对被引用的表进行锁定,可以使用数据库的锁机制来实现,如行级锁或表级锁。

腾讯云提供了多种云数据库产品,如云数据库MySQL、云数据库MariaDB、云数据库SQL Server等,可以满足不同场景下的需求。您可以根据具体的业务需求选择适合的产品。更多关于腾讯云数据库产品的信息,请访问腾讯云官网:https://cloud.tencent.com/product/cdb

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

相关·内容

Mysql-4-数据库基本操作

(3)完全与mysql服务器整合,InnoDB存储引擎在主内存中缓存数据和索引而维持它自己缓冲池。 (4)支持外键完整性约束(foregin key)。...(3)每个MyISAM最大索引数是64,这可以通过重新编译来改变。每个索引最大数是16个。 (4)最大键长度是1000字节,也可以通过编译来改变。...对于键超过250字节情况,一个超过1024字节键将被用上。 (5)BLOB和TEXT可以索引。 (6)NULL值允许在索引中,每个值占每个键0-1个字节。...MEMORY存储引擎:将数据存储到内存中,为查寻和引用其它数据提供快速访问。特性如下 (1)每个可以多达32个索引,每个索引16,以及500字节最大键长度。...(3)在一个MEMORY可以有非唯一键。 (4)使用一个固定记录长度格式。 (5)不支持BLOB或TEXT。 (6)在所有客户端之间共享。

89070

mysql经典面试题及答案_常见SQL面试题

利用索引中附加,您可以缩小搜索范围,但使用一个具有两索引 不同于使用两个单独索引。...例如可以建立一个对表主键进行分区 4、KEY分区:上面Hash模式一种延伸,这里Hash Key是Mysql系统产生 17、行级锁定优点 1、当在许多线程中访问不同行时只存在少量锁定冲突...2、回滚时只有少量更改 3、可以长时间锁定单一行 18、行级锁定缺点 1、比页级或锁定占用更多内存 2、当在大部分中使用时,比页级或锁定速度慢,因为你必须获取更多锁 3、如果你在大部分数据上经常进行...EXPLAIN查询结果还会告诉你你索引主键如何利用,你数据是如何搜索和排序 3、当只要一行数据时使用limit 1,Mysql数据库引擎会在找到一条数据后停止搜索,而不是继续往后查找下一条符合记录数据...包括primary key,unique keyforegin key等 2、index是数据库物理结构,它只是辅助查询,它创建时会在另外空间(mysql中innodb空间)以一个类似目录结构存储

70520

四、数据完整性

实体完整性 实体是现实世界中某个对象,在RDBMS中一行数据代表一个实体。实体完整性就是保证每个实体都能区别。...对于不是主键字段但是也需要唯一性约束,我们可以在定义表字段时候在需要唯一性约束字段后面加上unique。...参照完整性 主要是之间关系,可以通过外键foregin key来实现。要求关系中不允许引用不存在实体。...定义外键方法如下:: #学生 create table student( stu__no int not null primary key comment '学号', stu_name...域完整性约束 域完整性主要是对输入有要求,通过限制数据类型、格式或值范围来实现。是针对某一具体关系数据库约束条件,它保证某些不能输入无效值。

76830

数据库SQL语言从入门到精通--Part 4--SQL语言中模式、基本、视图

[, ] ); 注: 如果完整性约束条件涉及到该多个属性,则必须定义在级上,否则既可以定义在级也可以定义在级。...** 4.FOREGIN KEY(外键)约束:** 定义了一个中数据与另一个数据联系。...FOREGIN KEY约束指定某一个或一组列作为外部键,其中包含外部键称为子表,包含外部键所引用主键称为父。...DROP COLUMN 子句用于删除如果指定了CASCADE短语,则自动删除引用了该其他对象如果指定了RESTRICT短语,则如果该其他对象引用,关系数据库管理系统将拒绝删除该 DROP...| CASCADE]; RESTRICT:删除是有限制 欲删除基本不能其他约束所引用; 如果存在依赖该对象,则此不能被删除 CASCADE:删除该没有限制 在删除基本同时

2.1K10

(超级详细SQL基础,你还不会的话就别学数据库了)

[, ] ); 注: 如果完整性约束条件涉及到该多个属性,则必须定义在级上,否则既可以定义在级也可以定义在级。...** 4.FOREGIN KEY(外键)约束:** 定义了一个中数据与另一个数据联系。...FOREGIN KEY约束指定某一个或一组列作为外部键,其中包含外部键称为子表,包含外部键所引用主键称为父。...DROP COLUMN 子句用于删除如果指定了CASCADE短语,则自动删除引用了该其他对象如果指定了RESTRICT短语,则如果该其他对象引用,关系数据库管理系统将拒绝删除该 DROP...| CASCADE]; RESTRICT:删除是有限制 欲删除基本不能其他约束所引用; 如果存在依赖该对象,则此不能被删除 CASCADE:删除该没有限制 在删除基本同时

69230

MySQL(六)

外键操作 增加外键 MySQL 中提供两种方式增加外键: 在创建时,直接新增外键 基本语法: [constraint {外键名}] foregin key({外键字段}) references {主表...}(主键); 在创建后,再新增外键 基本语法: alter table {从名} add [constraint {外键名}] foregin key({外键字段}) references {主表...约束基本概念 当一个外键产生时,从会受制于主表数据存在从而导致数据不能进行某些不符合规范操作(不能插入主表不存在数据) 如果一个其他外键引入,那么该数据操作就不能随意,必须保证从数据有效性...基本语法: add foregin key({外键字段}) references {主表名}(主键) on {约束模式}; 约束模式有三种: district,严格模式,默认,不允许操作 cascade...封锁 封锁粒度 MySQL 中提供了两种封锁粒度: 行级锁 级锁 应该尽量只锁定需要修改那部分数据,而不是所有的资源。锁定数据量越少,发生锁争用可能就越小,系统并发程度就越高。

42010

四、数据完整性

实体完整性 实体是现实世界中某个对象,在RDBMS中一行数据代表一个实体。实体完整性就是保证每个实体都能区别。...对于不是主键字段但是也需要唯一性约束,我们可以在定义表字段时候在需要唯一性约束字段后面加上unique。...参照完整性 主要是之间关系,可以通过外键foregin key来实现。要求关系中不允许引用不存在实体。...定义外键方法如下: #学生 create table student( stu__no int not null primary key comment '学号', stu_name...域完整性约束 域完整性主要是对输入有要求,通过限制数据类型、格式或值范围来实现。是针对某一具体关系数据库约束条件,它保证某些不能输入无效值。

96100

T-SQL语句基本概念语法

revoke all        On 数据库      To 用户;--用户权限撤销 主键约束(primary key constraint):要求主键数据唯一,并且不允许为空...constraint):某默认值 外键约束(foregin key constraint):用于两间建立关系,需要制定引用主表,哪个是外键,就修改哪个 district 去重 局部变量...:SQL Server编排数据内部方法,它为SQL Server提供一种方法来编排查询数据 索引页:数据库存放数据页,索引页类似于汉语字典中按平阴或笔画排序目录页 索引作用:通过使用索引,可以大大提高数据库检索速度...,触发器执行完成后,自动删除 inserted:     临时保存了插入或更新记录行,可以从inserted中检查插入数据是否满足业务需求,如果不满足,则向用户报告错误,并回滚插入操作 deleted...:     临时保存了删除或更新记录行,可以中检查被删除数据是否满足业务需求,如果不满足,则向用户报告错误,并回滚插入操作

1.4K20

MySQL深入浅出(二):索引设计原则、SQL优化、MySQL日志、备份与恢复

如果其他线程锁定,则当前线程会等待,直到可以获取所有锁定为止 ?...这时要提高性能,可通过检验WHERE子句,看是否引用某些字段,或者检查字段不是适合索引 key: 显示MySQL实际决定使用索引。...如果没有索引被选择,是NULL key_len: 使用到索引字段长度 注:key_len显示值为索引字段最大可能长度,并非实际使用长度,即key_len是根据定义计算而得,不是通过内检索出...ref: 显示哪个字段或常数与key一起使用 rows: 这个数表示mysql要遍历多少数据才能找到,表示MySQL根据统计信息及索引选用情况,估算找到所需记录所需要读取行数,在innodb...优化insert语句,如果同时从同一个客户端插入多行,应尽量使用多个值insert语句,这种方式大大缩减客户端与数据库之间连接、关闭等消耗 优化嵌套查询:有些情况下,子查询可以更有效连接

1.1K21

解读Google分布式锁服务

Transaction)和锁(Lock)有区别?...Percolator利用Bigtable原有的行锁,再加上自己一些巧妙做法,实现了分布式锁服务,这就意味着,Google可以实时更新PB级别的索引库。...最近我们发现Google搜索结果时效性很好,刚写好文章,几分钟之后,Google就可以检索到,原因就在GoogleCrawler在抓到新网页之后,不用再等待一定时间批量更新索引,而是实时更新...下面的这个例子是把UserA的人气分减掉10,加到UserB的人气分上,key表示每一行key,data,lock,write是列名字,data存储数据,lock存储锁状态,write表示事务提交后数据位置引用...事务提交 事务提交过程分两步,以UserA为例: 首先,在write写入新数据位置引用,注意不是数据,是引用(理解成指针会更形象),上面step3A 中t3:data:t2表示在t3时刻提交数据

47920

2020最新版MySQL数据库面试题(二)

级锁 级锁是MySQL中锁定粒度最大一种锁,表示对当前操作整张加锁,它实现简单,资源消耗较少,大部分MySQL引擎支持。最常使用MYISAM与INNODB都支持锁定。...,不包括记录本身 Next-key lock:record+gap 锁定一个范围,包含记录本身 相关知识点: innodb对于行查询使用next-key lock Next-locking keying...2、在同一个事务中,尽可能做到一次锁定所需要所有资源,减少死锁产生概率; 3、对于非常容易产生死锁业务部分,可以尝试使用升级锁定颗粒度,通过锁定来减少死锁产生概率; 如果业务处理不好可以用分布式事务锁或者使用乐观锁...但是,视图并不在数据库中以储存数据值形式存在。行和数据来自定义视图查询所引用基本,并且在具体引用视图时动态生成。...FOREIGN KEY: 用于预防破坏之间连接动作,也能防止非法数据插入外键,因为它必须是它指向那个值之一。 CHECK: 用于控制字段值范围

61621

2020最新版MySQL数据库面试题(二)

级锁 级锁是MySQL中锁定粒度最大一种锁,表示对当前操作整张加锁,它实现简单,资源消耗较少,大部分MySQL引擎支持。最常使用MYISAM与INNODB都支持锁定。...,锁定一个范围,不包括记录本身 Next-key lock:record+gap 锁定一个范围,包含记录本身 相关知识点: innodb对于行查询使用next-key lock Next-locking...2、在同一个事务中,尽可能做到一次锁定所需要所有资源,减少死锁产生概率; 3、对于非常容易产生死锁业务部分,可以尝试使用升级锁定颗粒度,通过锁定来减少死锁产生概率; 如果业务处理不好可以用分布式事务锁或者使用乐观锁...但是,视图并不在数据库中以储存数据值形式存在。行和数据来自定义视图查询所引用基本,并且在具体引用视图时动态生成。...FOREIGN KEY: 用于预防破坏之间连接动作,也能防止非法数据插入外键,因为它必须是它指向那个值之一。

61820

SQL命令 UPDATE(三)

此设置不适用于用NOCHECK关键字定义外键。 在UPDATE操作期间,对于每个具有更新字段值外键引用,都会在被引用旧(更新前)引用行和新(更新后)引用行上获得共享锁。...这些行在执行引用完整性检查和更新行时锁定。 然后释放锁(直到事务结束才持有锁)。 这确保了引用行不会在引用完整性检查和更新操作完成之间发生更改。...锁定旧行可以确保在可能UPDATE回滚之前不会更改所引用行。 锁定新行可以确保引用行不会在引用完整性检查和更新操作完成之间发生更改。...权限 要执行更新,必须对指定(或视图)具有级update权限,或者对指定具有级update权限。...您可以通过调用%CHECKPRIV命令来确定当前用户是否具有适当特权。 可以使用GRANT命令分配用户权限。 当属性定义为ReadOnly时,相应表字段也定义为ReadOnly。

1.6K20

图文实例解析,InnoDB 存储引擎中行锁三种算法

如果在建立时候没有设置任何一个索引,那么这时 InnoDB 存储引擎会使用 “隐式主键” 来进行锁定。...所谓隐式主键就是指:如果在建时候没有指定主键,InnoDB 存储引擎会将第一非空列作为主键;如果没有的话会自动生成一为 6 字节主键。...可以看见,由于锁住是不同记录行,所以两个记录锁并没有相互排斥,来看一下现在数据,由于事务 1 还没有 commit,所以应该是只有 id = 2 username 修改了: ?..., 13] (13, 20] (20, +∞] 细心同学应该已经注意到了,和 Gap Lock 不同之处就在于,Next-Key Lock 锁定区间是左开右闭,也就是说它是包含当前操作索引记录...若唯一索引由多个组成,而操作仅是多个唯一索引其中一个,那么 InnoDB 存储引擎依然使用 Next-Key Lock 进行锁定。 ?

95930

MySQL binlog 为 statement 格式考虑是不安全(slave端不一致)操作

因此,在MySQL中,所有依赖于全文插件语句都被视为不安全。 触发器或存储程序将更新具有AUTO_INCREMENT。  这是不安全,因为在主服务器和从服务器上,行更新顺序可能不同。...此外,INSERT到包含复合主键AUTO_INCREMENT是不安全,该主键包含 不是该复合键第一。...当对包含多个主键或唯一键执行该语句时,该语句认为是不安全,它对存储引擎检查键顺序(不确定)以及由行更新选择敏感。 MySQL Server取决于。 INSERT ......ON DUPLICATE KEY UPDATE针对具有多个唯一键或主键  语句对于基于语句复制标记为不安全。(缺陷#11765650,错误#58637) 使用LIMIT更新。  ...未指定行检索顺序,因此认为是不安全。请参见 第17.5.1.18节“复制和限制”。 访问或引用日志。  主服务器和从服务器之间系统日志内容可能有所不同。 交易操作之后非交易操作。

61210

10个非常实用Excel技巧

简直是疯了…这要浪费多少时间你知道?其实有一个简单技巧,就是在你选定单元格之后,按F4键输入美元符号并锁定;如果你继续按F4,则会向后挨个循环:锁定单元格、锁定数字、锁定大写字母、解除锁定。 ?...此处我们可以看到一个数据,第一是法学院排名。我们可以用VLOOKUP来创建一个排名前五学校查询。...9.用“&”合并单元格 我们现在拥有一姓和一名,我们可以使用“&”符号来创建一合并姓和名数据。在Excel中,“&”指将两个或两个以上文本合并。别忘了在姓和名中间键入一个空格。...10.用RAND函数生成随机数 你可以使用RAND()函数来生成一个single型随机数,小于1但大于等于0 。括号内空着就成,无需键入任何参数。新随机数会随着工作簿更新而重新生成。...你也可以按F9键来让工作重新计算一遍从而更新随机数,不过操作时候记得当心点。 RAND() ?

1.3K80

再谈mysql锁机制及原理—锁诠释

事务B更新时,其实无须知道到底哪一行锁了,它只要知道反正有一行锁了就行了。...事务需要更新大部分或全部数据,又比较大,如果使用默认行锁,不仅这个事务执行效率低,而且可能造成其他事务长时间锁等待和锁冲突,这种情况下可以考虑使用锁来提高该事务执行速度。...当一个线程获得对一个写锁后, 只有持有锁线程可以对表进行更新操作。 其他线程读、 写操作都会等待,直到锁释放为止。...如果你使用LOCK TABLES显式获取锁,则可以请求READ LOCAL锁而不是READ锁,以便在锁定时,其他会话可以使用并发插入。...当前系统隔离级别是什么? id如果不是主键,那么id列上有索引? id列上如果有二级索引,那么这个索引是唯一索引? 两个SQL执行计划是什么?索引扫描?全扫描?

1.1K01

select和where子句优化

,平衡可移植性和性能 4.合适结构,合适数据类型;执行频繁更新应用程序大量表(少列);分析大量数据应用程序少量表(多);选择合适存储引擎和索引; 5.压缩适用于InnoDB各种工作负载,...以及只读MyISAM 6.选择合适锁定策略;InnoDB存储引擎可以处理大多数锁定问题 7.配置主要内存区域是InnoDB缓冲池和MyISAM密钥缓存。...8.优化select语句,这方面技巧同样适用于其他带wheredelete语句等,在where子句列上设置索引;索引对于引用多个如join和外键尤其重要 select where子句优化: 1.调整查询结构...通过有效使用InnoDB缓冲池,MyISAM密钥缓存和MySQL查询缓存 8.where条件,去掉不必要括号,恒定折叠,恒定条件去除,减少不必要逻辑 9.索引使用常量表达式只计算一次 10.count...;where子句作用在primary key或者unique索引上 13.如果ORDER BY和GROUP BY子句中所有都来自同一个,则在连接时首选该 14.如果order by子句和group

1.5K30

10个提高你工作效率Excel技巧

简直是疯了…这要浪费多少时间你知道?其实有一个简单技巧,就是在你选定单元格之后,按F4键输入美元符号并锁定;如果你继续按F4,则会向后挨个循环:锁定单元格、锁定数字、锁定大写字母、解除锁定。 ?...8用VLOOKUP找出你想要数据 VLOOKUP是按查找函数,最终返回该所需查询序所对应值。此处我们可以看到一个数据,第一是法学院排名。...9用“&”合并单元格 我们现在拥有一姓和一名,我们可以使用“&”符号来创建一合并姓和名数据。在Excel中,“&”指将两个或两个以上文本合并。别忘了在姓和名中间键入一个空格。...10用RAND函数生成随机数 你可以使用RAND()函数来生成一个single型随机数,小于1但大于等于0 。括号内空着就成,无需键入任何参数。新随机数会随着工作簿更新而重新生成。...你也可以按F9键来让工作重新计算一遍从而更新随机数,不过操作时候记得当心点。 RAND() ? 来源微信公众号:领秀职场

1.7K40

MySQL数据库知识点

或者说怎么才可以知道这条语句运行很慢原因? SQL生命周期? 大数据查询,怎么优化 超大分页怎么处理? mysql 分页 慢查询日志 关心过业务系统里面的sql耗时?统计过慢查询?...级锁 级锁是MySQL中锁定粒度最大一种锁,表示对当前操作整张加锁,它实现简单,资源消耗较少,大部分MySQL引擎支持。最常使用MYISAM与INNODB都支持锁定。...2、在同一个事务中,尽可能做到一次锁定所需要所有资源,减少死锁产生概率; 3、对于非常容易产生死锁业务部分,可以尝试使用升级锁定颗粒度,通过锁定来减少死锁产生概率; 如果业务处理不好可以用分布式事务锁或者使用乐观锁...但是,视图并不在数据库中以储存数据值形式存在。行和数据来自定义视图查询所引用基本,并且在具体引用视图时动态生成。...TIPS:查询中若使用了覆盖索引(覆盖索引:索引数据覆盖了需要查询所有数据),则该索引仅出现在key列表中 key_length 索引长度 ref 表示上述连接匹配条件,即哪些或常量用于查找索引列上

74620
领券