mysql存储过程并行_Mysql存储过程的执行顺序问题
Mysql存儲過程的執行順序問題
SQL code:
CREATE TABLE `t_a` (
`a_id` int(11) NOT NULL AUTO_INCREMENT,
`a_name` varchar(30) NOT NULL DEFAULT 'N/A',
PRIMARY KEY (`a_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE `t_b` (
`b_id` int(11) NOT NULL AUTO_INCREMENT,
`b_name` varchar(30) NOT NULL DEFAULT 'N/A',
`a_id` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`b_id`),
KEY `a_id` (`a_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
create procedure sp_insert_b
(
p_aname varchar(30),
p_bname varchar(30)
)
begin
declare v_id int;
insert into t_a(a_name)values(p_aname);
select a_id into @v_id from t_a order by a limit 1;
set v_id=@v_id;
insert into t_b(b_name,a_id) values(p_bname,v_id);
end
上面的存儲過程執行時,會不會存在這樣一種風險:有多個客戶端同時調用存儲過程,存儲過程在執行select a_id into @v_id from t_a order by a limit 1;這句時,獲取的id會不會錯位?也就是說多個客戶端調用同一個Server的同一個存儲程序,存儲程序是并行執行還是順序執行?我理解的并行執行就是多個程序同時執行,順序執行就是一個client端完了再執行另一個client端的,謝謝!MySQL 不保證你并發進程的訪問順序!
如果你想取剛INSERT的a_id,最好用LAST_INSERT_ID()
insert into t_a(a_name)values(p_aname);
select LAST_INSERT_ID() into @v_id ;
LAST_INSERT_ID()是個function,我怎么知道這個LAST_INSERT_ID()是t_a的而不是t_b的呢?
如何定位這個
相關問答:
大家幫我看下吧,本來數據庫沒有東西,能顯示沒有東西的信息,但是我添加了一條內容后,字沒了,但是圖片也無法顯示,紅叉叉也沒有,怎么回事啊?
PHP code:
$str="select * from product wh ......
我在清理mysql的時候,一不留神將mysql(即data里的mysql文件夾)數據庫給刪掉了,隔了幾個小時我重啟了mysql軟件,mysql就自動初始化了數據庫,導致從刪除mysql文件夾開始到重啟這段時間的數據丟失,那位高手幫想想辦 ......
我已經按照教程上配置tomcat的server.xml
CREATE DATABASE ADDRESSLIST;
USE ADDRESSLIST;
DROP TABLE IF EXISTS FRIEND;
CREATE TABLE FRIEND
(FRIEND_ID INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY ,
FRIEND_NAME VARCHAR(20) NOT N ......
如題。我已經安裝了mysqlodbc驅動。
adodc控件屬性里面,連接資源,
有
使用DataLink文件
使用ODBC數據資源名稱
使用連接字符串
是選擇哪個?
然后得步驟是怎么樣的?
HTML code:
http://www.connectionst ......
總結
以上是生活随笔為你收集整理的mysql存储过程并行_Mysql存储过程的执行顺序问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Excel使用控件创建动态地图图表
- 下一篇: mysql 命令行 主从复制_MySQL