我在存储过程中使用了会话变量,以实现拼接sql的目的。同时采用会话变量做为参数,传入sql中做操作。
在多用户同时使用此存储过程的并发情况下,此会话变量的值会否存在多用户读取到不是本身传入值的现象?即a用户读取到b用户的值。b用户读取到c用户的值。对会话变量的线程安全理解的不深刻,请指教~例子如下:IN `_yya` varchar(32)BEGIN
DECLARE _MySQLText VARCHAR(8000);SET @yy = _yya;SET _MySQLText = CONCAT("
INSERT INTO `yy`
(
`yy`
)
VALUES
(
@yy
)");
SET @MySQLText = _MySQLText;
PREPARE stmt FROM @MySQLText;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END
在多用户同时使用此存储过程的并发情况下,此会话变量的值会否存在多用户读取到不是本身传入值的现象?即a用户读取到b用户的值。b用户读取到c用户的值。对会话变量的线程安全理解的不深刻,请指教~例子如下:IN `_yya` varchar(32)BEGIN
DECLARE _MySQLText VARCHAR(8000);SET @yy = _yya;SET _MySQLText = CONCAT("
INSERT INTO `yy`
(
`yy`
)
VALUES
(
@yy
)");
SET @MySQLText = _MySQLText;
PREPARE stmt FROM @MySQLText;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货