十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
lock table 表名 exclusive mode nowait; -- 锁整个表
10年积累的做网站、网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站制作后付款的网站建设流程,更有果洛州免费网站建设让你可以放心的选择与我们合作。
select * from 表名 where XXX for update nowaitl -- 锁符合条件的记录
锁是 数据库保护数据表的一种机制,通常是自动的,分级别的,如果你访问一个表的并发量太大,可以试试拆分这个表,比如按日期拆分成月表,或者利用oracle的功能(分区)进行拆分来分散压力,如果没有依据拆分的话,可以做成实体化快照,将一些查询类的操作指向这个快照,分摊表的访问量,也可以通过提升硬件,比如上SSD磁盘,然后将这个表放到这个磁盘上,提高访问速度。
oracle数据库分行级锁和表级锁。用select * from table-name for update完成行级锁。用delete或update完成表级锁。你锁定的资源 别人会等待你的提交语句或回退语句完成以后再继续进行。
这个和锁定机制没什么关系吧?你的需求只需要逻辑标识就可以满足了。
可以设定一个 锁定状态的字段,例如 LOCK 等等,名字你自己根据业务场景自己取了。当提交领导审批这步之后,LOCK字段设置一个值,例如1,为锁定状态,其他业务操作时先取得此字段状态是否为1,为1不可修改。
领导批准了之后,记录不可修改,LOCK=1不动,如拒绝,LOCK=0,可重新修改。
这样就可以满足你的需求了,采用锁机制并不能满足你的要求。因为你不知道领导什么时候去审批通过,你总不能这一段时间之内都占用ORACLE的锁吧?这是不合理的。
希望能对你有帮助。