我有一个MySql过程,其中包含两个表的两个更新查询。 当我在MySql Workbench中调用它时,proc工作正常。但是当我通过我的java代码调用它时,只有一个更新语句可以工作。
我更改了调用两个更新语句的顺序,但每次都是相同的查询,不更新。 proc是
DELIMITER $$
CREATE DEFINER=`root`@`%` PROCEDURE `theProc`(
IN ADMIN_EMAIL_ID_1 varchar(200),
IN IS_EMAIL_ID_1 varchar(100),
IN IS_EMAIL_ID_2 varchar(100),
IN Build_floor varchar(100) ,
IN Locayshan varchar(200),
IN referenceid varchar(100))
BEGIN
UPDATE mySchema.table1 SUMM
SET SUMM.PHY_MAIL_IDS =ADMIN_EMAIL_ID_1, SUMM.swon_flag = Build_floor, SUMM.IS_MAIL_IDS = IS_EMAIL_ID_1, SUMM.IS_MAIL_IDS2 = IS_EMAIL_ID_2
WHERE SUMM.REF_ID=referenceid;/*Works fine*/
UPDATE mySchema.table2 MAS
SET MAS.Location=Locayshan where MAS.REF_ID=referenceid; /*This doesn't work*/
END
我的java代码是
String query = "{call mySchema.theProc(?,?,?,?,?,?)}";
cstmt = c.prepareCall(query);
cstmt.setString(1, "a.b@c.com$$f.g@c.com");
cstmt.setString(2, "d.e@c.com");
cstmt.setString(3, "");
cstmt.setString(4, "2nd Floor North Wing$$4th Floor South Wing");
cstmt.setString(5, "California$$Moscow$$");
cstmt.setString(6, "666");
cstmt.executeUpdate();
字符串“California $$ Moscow $$”应该存储在table2中,但不是。
我应该采用不同的方式调用proc吗?请帮忙。