我有插入预订记录的存储过程,其中包含booking_id
,name
,r_id
,t_id
等详细信息。现在我想知道如何检索插入ID这个记录。
存储过程仅允许LAST_INSERT_ID
这里MYSQL_INSERT_ID()
无效。
但是这里一次有两个用户进行预订,那么最后的记录是不同的。
请通过我的sql中的存储过程帮助我如何获取预订的插入记录ID。
答案 0 :(得分:3)
您可以通过不同方式捕获last_insert_id()
值。
'OUT'
参数,并使用正确的数据类型。INSERT INTO...
后,执行set out_param := last_inser_id();
'OUT'
参数的值。示例1 :
delimiter //
create procedure sp_so_q24075108( IN param1 int, ..., OUT param_auto_id int )
begin
insert
into table_name( col2, col3, ... )
values ( param1, param2, ... );
set param_auto_id := last_insert_id();
end;
//
delimiter ;
call sp_so_q24075108( 6, ..., @last_generated_id );
select @last_generated_id;
OR
'LAST_INSERT_ID()'
语句后将'INSERT'
捕获到用户变量中。 'OUT'
参数的值。示例2 :
delimiter //
create procedure sp_so_q24075108( IN param1 int, ... )
begin
insert
into table_name( col2, col3, ... )
values ( param1, param2, ... );
set @auto_id := last_insert_id();
end;
//
delimiter ;
call sp_so_q24075108( 6, ... );
select @auto_id;
参考: