如何从 mysql 事务中获取存储的变量值
How to get stored variable value from mysql transaction
我已经为 mySQL InnoDB 引擎编写了一个事务。
它在 table 中有一个带有自动生成密钥的插入,而不是另一个使用我使用 LAST_INSERT_ID()
获得的自动生成密钥的插入。
现在,在第二次插入之后,我有几个插入需要一个外键,用于从我插入的最后一个 table 自动生成的键。
所以我所做的是做一个变量并使用它是所有这些。
现在,我需要在我的 Java 程序中返回自动生成的键值,以便我可以使用它。
我该怎么做?
我的交易量相当大,所以这就是我想要做的。
start transaction;
insert into a(value) values(123);
insert into b(aid,value) values((select LAST_INSERT_ID()),345);
SET @KEY = ( select LAST_INSERT_ID() ) ;
insert into c(val,fk) values(1,@KEY);
insert into c(val,fk) values(2,@KEY);
insert into c(val,fk) values(3,@KEY);
.....
insert into c(val,fk) values(10,@KEY);
现在我需要在我的程序中返回 @KEY
变量值。
它的 Java 程序我正在为 MySQL 使用 J 连接器(如果重要的话)。
MySQL 变量是会话范围的,只要您使用相同的连接,您就可以在任何地方执行以下操作:
SELECT @KEY;
更多信息,手册是你的朋友:https://dev.mysql.com/doc/refman/5.0/en/user-variables.html
我已经为 mySQL InnoDB 引擎编写了一个事务。
它在 table 中有一个带有自动生成密钥的插入,而不是另一个使用我使用 LAST_INSERT_ID()
获得的自动生成密钥的插入。
现在,在第二次插入之后,我有几个插入需要一个外键,用于从我插入的最后一个 table 自动生成的键。
所以我所做的是做一个变量并使用它是所有这些。
现在,我需要在我的 Java 程序中返回自动生成的键值,以便我可以使用它。
我该怎么做?
我的交易量相当大,所以这就是我想要做的。
start transaction;
insert into a(value) values(123);
insert into b(aid,value) values((select LAST_INSERT_ID()),345);
SET @KEY = ( select LAST_INSERT_ID() ) ;
insert into c(val,fk) values(1,@KEY);
insert into c(val,fk) values(2,@KEY);
insert into c(val,fk) values(3,@KEY);
.....
insert into c(val,fk) values(10,@KEY);
现在我需要在我的程序中返回 @KEY
变量值。
它的 Java 程序我正在为 MySQL 使用 J 连接器(如果重要的话)。
MySQL 变量是会话范围的,只要您使用相同的连接,您就可以在任何地方执行以下操作:
SELECT @KEY;
更多信息,手册是你的朋友:https://dev.mysql.com/doc/refman/5.0/en/user-variables.html