这个代码是我需要实现,前端审核某个审核后,这个数据会在另一个页面中呈现,涉及到两个数据库表。一下内容是用于测试的代码。
前端进行处理,将id封装成数组后提交到Java后台,"数组"使用 - 来分隔,是因为入参时,我使用了逗号,但是测试失败了,就改用-或空格
在点提交后,实际提交的是id的数组的形式提交,后台获取之后进行存储过程的调用 入参,实际传入的是字符串,并非数组。
DELIMITER // --由于该测试是在cmd进行的,需要进行该项修改,mysql才不会使用分号做默认结束标识
create procedure copytest(in strid text, out testresult varchar(5)) --之所以使用text而不用char,是以你为char需要设置长度,当我们从Java传过来的id个数不确定时,就不是很理想了。BEGIN
DECLARE EXIT HANDLER FOR SQLEXCEPTION ROLLBACK;--当有一条insert执行失败时,直接exit,也就是退出 不继续执行,同时进行rollback
set testresult = 0;
START TRANSACTION;--新的事物开始
insert into testcopy(id, name, sex)
select id,name,sex from testtable where id regexp replace(strid,' ','-');--对字符串中的指定字符进行拆分后当成查询条件