多线程操作Mysql问题
这个存储过程,多线程下会丢失数据。
昨天经过测试,问题出在 : INSERT INTO game_user.account(status,account,password,platform) SELECT _status,_account,_password,_platform FROM DUAL WHERE NOT EXISTS(SELECT * FROM game_user.account WHERE account=_account AND platform=_platform);
WHERE NOT EXISTS(SELECT * FROM game_user.account WHERE account=_account AND platform=_platform); 去掉这部分代码,数据不会丢失,前者数据会丢失。
不太理解为何会出现这种状况 ,希望能帮忙分析下。
CREATE DEFINER=`root`@`%` PROCEDURE `game_register1`(IN `_status` int,IN `_account` varchar(64),IN `_password` varchar(64),IN `_platform` int)
BEGIN
#Routine body goes here...
DECLARE _id BIGINT;
SET _id = -1;
SELECT userid INTO _id FROM game_user.account WHERE account=_account AND platform=_platform;
IF _id < 0 THEN
INSERT INTO game_user.account(status,account,password,platform) SELECT _status,_account,_password,_platform FROM DUAL WHERE NOT EXISTS(SELECT * FROM game_user.account WHERE account=_account AND platform=_platform);
SELECT userid INTO _id FROM game_user.account WHERE account=_account AND platform=_platform;
IF LAST_INSERT_ID() = _id then
SELECT 1,_id;
ELSE
SELECT -2;
END IF;
ELSE
SELECT -1;
END IF;
END
;;
昨天经过测试,问题出在 : INSERT INTO game_user.account(status,account,password,platform) SELECT _status,_account,_password,_platform FROM DUAL WHERE NOT EXISTS(SELECT * FROM game_user.account WHERE account=_account AND platform=_platform);
WHERE NOT EXISTS(SELECT * FROM game_user.account WHERE account=_account AND platform=_platform); 去掉这部分代码,数据不会丢失,前者数据会丢失。
不太理解为何会出现这种状况 ,希望能帮忙分析下。
...全文
相关推荐
python 多线程操作MySQL读写脚本
在"python 多线程操作MySQL读写脚本"这个场景中,开发者可能需要创建多个线程来同时进行数据的读取和更新,以提高程序的效率。然而,如果不合理地使用线程,可能会导致数据库连接中断的问题。
多线程操作官方MySQL支持库例子-易语言
在易语言中,我们可以通过创建线程对象,合理分配任务,来实现多线程操作。标题中的"多线程操作官方MySQL支持库例子",意味着我们将使用易语言的官方MySQL库,并在多线程环境下进行操作。
多线程对数据库操作
总结,这个项目是关于如何在Java中使用多线程安全地操作MySQL数据库,涉及到了Java的并发编程、JDBC、MySQL数据库连接以及线程安全问题。
多线程MySQL数据库源代码
学习这段代码将有助于理解如何在实际项目中安全、高效地实现多线程MySQL数据库操作。同时,它也为新手提供了一个很好的起点,帮助他们了解多线程编程和数据库操作的基本概念。
MySQL数据库的多线程引擎的实现思路.pdf
**多线程框架的具体功能** - **线程分配与竞争**:多线程竞争连接资源可能导致效率下降和数据一致性问题。通过连接池和固定连接单元策略,可以有效地解决这些问题,确保并发操作的正确性和性能。


