使用存储过程,在操作数据库时开启事务,避免并发时同时操作造成数据重复
CREATE DEFINER=`root`@`localhost` PROCEDURE `GetSerialNo`(IN tsCode VARCHAR(50),OUT result VARCHAR(200) )
BEGIN
DECLARE tsValue VARCHAR(50);
DECLARE tdToday VARCHAR(20);
DECLARE nowdate VARCHAR(20);
DECLARE tsQZ VARCHAR(50);
DECLARE t_error INTEGER DEFAULT 0;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET t_error=1;
START TRANSACTION;
SELECT sValue INTO tsValue FROM sys_sno WHERE sCode=tsCode;
SELECT sQz INTO tsQZ FROM sys_sno WHERE sCode=tsCode ;
-- 因子表中没有记录,插入初始值
IF tsValue IS NULL THEN
SELECT CONCAT(DATE_FORMAT(NOW(),'%y%m'),'0001') INTO tsValue;
UPDATE sys_sno SET sValue=tsValue WHERE sCode=tsCode ;
SELECT CONCAT(tsQZ,tsValue) INTO result;
ELSE
SELECT SUBSTRING(tsValue,1,4) INTO tdToday;
SELECT CONVERT(DATE_FORMAT(NOW(),'%y%m'),SIGNED) INTO nowdate;
-- 判断年月是否需要更新
IF tdToday = nowdate THEN
SET tsValue=CONVERT(tsValue,SIGNED) + 1;
ELSE
SELECT CONCAT(DATE_FORMAT(NOW(),'%y%m') ,'0001') INTO tsValue ;
END IF;
UPDATE sys_sno SET sValue =tsValue WHERE sCode=tsCode;
SELECT CONCAT(tsQZ,tsValue) INTO result;
END IF;
IF t_error =1 THEN
ROLLBACK;
SET result = 'Error';
ELSE
COMMIT;
END IF;
SELECT result ;
END;
dao
Integer getFaultNo(Map<String, String> parameterMap);
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1142
183.71 KB下载数642
644.84 KB下载数2755
相关文章
发现更多好内容猜你喜欢
AI推送时光机mybatis+mysql 使用存储过程生成流水号的实现代码
数据库2024-04-02
mysql+mybatis实现存储过程+事务 + 多并发流水号获取
数据库2024-04-02
基于mybatis的java代码生成存储过程
数据库2020-03-08
Oracle生成单据编号存储过程的实例代码
数据库2024-04-02
mybatis调用存储过程的实例代码
数据库2023-05-31
Mybatis调用MySQL存储过程的简单实现
数据库2023-05-31
MySQL存储过程的使用实现数据快速插入
数据库2023-09-07
mysql 使用存储过程实现树节点的获取方法
数据库2022-05-30
Mysql使用存储过程快速添加百万数据的示例代码
数据库2024-04-02
MySQL存储过程的创建使用以及实现数据快速插入
数据库2023-03-09
MySQL数据篇 (一)存储过程实现简单的数据修改及事务的使用
数据库2016-01-24
MySQL存储过程创建使用及实现数据快速插入的方法是什么
数据库2023-03-10
咦!没有更多了?去看看其它编程学习网 内容吧