我的表用户和设备的user_id列是tinyint(3)。 我必须创建一个过程,它将添加新用户并使用user_id更新这些表。所以我将分隔符设置为//并将其设为:
create procedure add_user (in pr_name varchar(15), in pr_surname varchar(15), in pr_address varchar(15), in pr_pesel float(11,0), in pr_tel int (9), in pr_package_id tinyint(3) unsigned, in pr_mac varchar(17), in pr_model varchar(15), in pr_ip int(10) unsigned)
begin
set @date = curdate();
insert into users values (null, pr_name, pr_surname, pr_address, pr_pesel, pr_tel, pr_package_id);
set @id = last_insert_id()
insert into devices (pr_mac, pr_ip, @id, pr_model, @date);
end;//
我想从user_id
(这是用户中的第一列并且也是自动增加)中最后添加users
并将其放入user_id
表中的devices
。 Mysql在'null, @id, pr_model, @date); end'
附近返回语法错误。
我认为这是因为last_insert_id()
函数返回bigint unsigned
。
请帮帮我。