1 / 5
文档名称:

数据库锁表与解锁.doc

格式:doc   大小:19KB   页数:5页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据库锁表与解锁.doc

上传人:992006838 2020/8/4 文件大小:19 KB

下载得到文件列表

数据库锁表与解锁.doc

相关文档

文档介绍

文档介绍:数据库锁表与解锁一、mysql锁定表:LOCKTABLEStbl_name{READ|WRITE},[tbl_name{READ|WRITE},…]解锁表:UNLOCKTABLES例子:LOCKTABLEStable1WRITE,table2READ  ...更多表枷锁;说明:1、READ锁代表其他用户只能读不能其他操作      2、WRITE锁代表:其他用户不能任何操作(包括读)查看那些表被锁:showOPENTABLESwhereIn_use>0;全局加锁:FLUSHTABLESWITHREADLOCK(这个命令是全局读锁定,执行了命令之后所有库所有表都被锁定只读。解锁也是:UNLOCKTABLES)二、oracle--行级锁定(同样对mysql起作用)通过:select*fromtableNametforupdate或 select*fromtableNametwhereid=1forupdate前者锁定整个表,后者多顶id=1的一行数据(有主键,并且指定主键=值的只锁定指定行)说明:通过select...forupdate  后其他用户只能读不能其他操作,mit或rollback命令自动解锁,或使用 本文的解锁方式(will)!--表级锁定locktable<table_name> in<lock_mode> mode[nowait]其中:lock_mode是锁定模式nowait关键字用于防止无限期的等待其他用户释放锁五种模式如下(1到5级别越来越高,限制越来越大):1、行共享(rowshare,rs):允许其他用户访问和锁定该表,但是禁止排他锁定整个表2、排他锁(rowexclusive,rx):与行共享模式相同,同时禁止其他用户在此表上使用共享锁。使用select...forupdate语句会在表上自动应用行排他锁3、共享(share,s):共享锁将锁定表,仅允许其他用户查询表中的行,但不允许插入、更新、删除行。多个用户可以在同一表中放置共享锁,即允许资源共享,,因此得名“共享锁”。例如:如果用户每天都需要在结账时更新日销售额表,则可以在更新该表时使用共享锁以确保数据的一致性。4、共享排他锁(sharerowexclusive,srx):执行比共享锁更多的限制。防止其他事务在表上应用共享锁,、共享排他锁以及排他锁。5、排他(exclusive,x):对表执行最大的限制。除了允许其他用户查询该表记录,排他锁防止其他事务对表做任何更改或在表上应用任何类型的锁。实例:locktable table_Namein exclusivemode;mit或rollback 或者用本文的解锁方式(will)!--查询锁表SELECT/*+rule*/,DECODE(,'TM','TABLELOCK','TX','ROWLOCK',NULL)LOCK_LEVEL,,,,,#,,,, FROMV$SESSIONS,V$LOCKL,=  =(+)