У меня есть хранимая процедура в базе данных MySQL, которую я использую для обновления своих записей.На основе входных данных либо добавьте часы в столбец, либо вычтите часы из столбца.Я называю этот SP, используя умный сервис Appian для процедур магазина.Моя проблема в том, что если попытаться сделать и сложение, и вычитание (для разных строк), то процедура сохранения ничего не делает.Он работает в моей модели процесса нормально, но БД не обновляется.Если я запускаю PM только с одним входом (либо с добавлением, либо с вычитанием), он соответствующим образом обновляет БД.Может кто-нибудь сказать мне, что я делаю неправильно в моем SP?Примечание: входы addAttendeeUsername и removeAttendeeUsername - это строки VARCHAR, разделенные запятыми
BEGIN
DECLARE startTime datetime;
DECLARE SQLStateCode varchar(5) DEFAULT '00000';
DECLARE ErrorNumber int;
DECLARE MessageText varchar(1000);
-- insert / update
set @sql = concat("UPDATE
XCS_APP_CERTIFICATION
SET
COMPLETED_HOURS = COMPLETED_HOURS + ", courseHours , ",
LAST_MODIFIED_BY = '", lastModifiedBy, "',
LAST_MODIFIED_ON = NOW()
WHERE
XCS_APP_CERTIFICATION.CREATED_BY in (" , addAttendeeUsername , ") AND VALID_START_DATE <= '", offeringEndDateTime, "'
AND GRACE_PER_END_DATE >= '", offeringEndDateTime,"' ");
set @sql2 = concat("UPDATE
XCS_APP_CERTIFICATION
SET
COMPLETED_HOURS = COMPLETED_HOURS - ", courseHours, ",
LAST_MODIFIED_BY = '", lastModifiedBy, "',
LAST_MODIFIED_ON = NOW()
WHERE
CREATED_BY IN (", removeAttendeeUsername, ") AND VALID_START_DATE <= '", offeringEndDateTime, "'
AND GRACE_PER_END_DATE >= '", offeringEndDateTime, "' ");
PREPARE stmt FROM @sql;
EXECUTE stmt;
PREPARE stmt2 FROM @sql2;
EXECUTE stmt2;
set successFlag = 1;
-- committing transaction
COMMIT;
END