mysql表角色互斥_MySQL如何实现互斥访问,锁表?
发布日期:2021-06-24 16:33:03 浏览次数:3 分类:技术文章

本文共 1360 字,大约阅读时间需要 4 分钟。

由于在MySQL中没有类似Oracle的序列的概念,因此决定通过一个表和两个存储过程来模拟这个功能。

我希望来自不同服务器的连接调用时,会有同步功能。

Create Table tbSequence(Id Int Unsigned Not Null Auto_Increment Primary Key, SequenceName Varchar(50) Not Null, SequenceValue Bigint Not Null);

Delimiter ;

Drop Function If Exists `fnNextSequence`;

Delimiter ;;

Create Function `fnNextSequence`(

p_SequenceName Varchar(50)

) Returns Bigint

Begin

Declare v_Result Bigint Default Null;

-- Lock Tables tbSequence Write;

-- Set Autocommit = 0;

-- Start Transaction;

Select SequenceValue Into v_Result From tbSequence Where SequenceName = p_SequenceName;

If v_Result Is Not Null Then

Set v_Result = v_Result + 1;

Update tbSequence Set SequenceValue = v_Result Where SequenceName = p_SequenceName;

Else

Set v_Result = 1;

Insert Into tbSequence(SequenceName, SequenceValue) Values(p_SequenceName, v_Result);

End If;

-- Unlock Tables tbSequence;

-- Commit;

Return v_Result;

End;;

Delimiter ;

Drop Function If Exists `fnCurrentSequence`;

Delimiter ;;

Create Function `fnCurrentSequence` (

p_SequenceName Varchar(50)

) Returns Bigint

Begin

Declare v_Result Bigint Default Null;

-- Lock Tables tbSequence Write;

-- Set AutoCommit = 0;

-- Start Transaction;

Select SequenceValue Into v_Result From tbSequence Where SequenceName = p_SequenceName;

-- Unlock Tables tbSequence;

-- Commit;

Return v_Result;

End;;

但是MySQL提示在存储过程中不允许锁表,也不允许启动事务。

该如何解决啊?

转载地址:https://blog.csdn.net/weixin_33865450/article/details/113219787 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:android vlc使用教程_在android项目中使用VLC
下一篇:安装mysql 创建用户_安装mysql,mysql创建数据库,创建用户及为用户添加权限

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年04月03日 22时13分08秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

一份字节跳动面试官给你的Android技术面试指南,内含福利 2019-04-29
一份非常适合收藏的Android进阶面试题!已拿offer入职 2019-04-29
HTTPS面试常问全解析,复习指南 2019-04-29
Jetpack-MVVM-高频提问和解答,快来收藏! 2019-04-29
Kafka是如何实现高性能的?专题解析 2019-04-29
kotlin入门,7年老Android一次操蛋的面试经历,持续更新中 2019-04-29
mmkv跨进程,4个改变你编程技能的小技巧,已开源 2019-04-29
ndk开发前景,万字长文总结Android多进程,成功定级腾讯T3-2 2019-04-29
ndk开发流程,Android开发还会吃香吗?绝对干货 2019-04-29
ndk开发环境,程序员怎样优雅度过35岁中年危机?社招面试心得 2019-04-29
PopupWindow和Dialog区别,年薪超过80万! 2019-04-29
Flutter中网络图片加载和缓存源码分析,真香! 2019-04-29
事件分发机制面试题,2021年你与字节跳动只差这份笔记,先收藏了 2019-04-29
事件分发流程,史上最全的Android面试题集锦,大厂内部资料 2019-04-29
互联网大厂100道Android面试题助你冲关金三银四!真香 2019-04-29
五年Android开发者小米、阿里面经,完整版开放下载 2019-04-29
五年Android开发者小米、阿里面经,附答案 2019-04-29
不断提升自己创造溢价的能力,Android面试题及解析 2019-04-29
不断提升自己创造溢价的能力,附带学习经验 2019-04-29
中高级Android面试中你不得不会的知识点,绝对干货 2019-04-29