我想知道是否有人能给我指出正确的方向.我使用MySQL存储过程一次运行两个查询.
我正在插入一个客户端记录,我为客户端分配了一个虚拟生成的UUID,同时我试图将新创建的ID和用户ID(创建客户端的用户)一起插入另一个表.
创建虚拟UUID的字段,而不是存储在服务器上
client_id varchar(36) generated always as
(insert(
insert(
insert(
insert(hex(id_bin), 9, 0, '-'),
14, 0, '-'),
19, 0, '-'),
24, 0, '-')
) virtual,
id_bin binary(16)
插入虚拟生成的ID
unhex(replace(uuid(), '-', ''))
我已经try 使用last_insert_id(),但由于我的id不是自动递增的,它没有帮助. 我也试过了
select * from client_info where client_id in (select max(client_id) from client_info);
我的存储过程如下所示(缩短以显示所需的字段):
create procedure addClient(
in puser_id varchar(36),
in pname varchar(255)
)
BEGIN
insert into client_info (id_bin, f_name) values (unhex(replace(uuid(), '-', '')), pname);
insert into clients (user_id, client_id) values (puser_id, XXXX)
END
//
DELIMITER ;
不确定如何将新的客户端ID插入到上面代码中显示XXXX的第二个INSERT语句中