I have a problem on my postgreSQL query. I must do a query with an UPDATE before and a DELETE after. The return value is the number of UPDATEs but I want the count of DELETEs. How can I do? Thank you very much. I use myBatis.
<update id="updateSpotMetaDataTagIdsToDelete">
<bind name="simulatedById" value="_parameter.spotUpdate.userOwner.getSimulatedById()" />
<foreach item="id" collection="spotUpdate.spotMetaDataTagIdsToDelete" separator=";" >
UPDATE spotsmetadatatags
SET updatedate = now(),
simulatedBy = #{simulatedById},
fkuserowner = #{spotUpdate.userOwner.id},
sessionId = #{spotUpdate.userOwner.sessionId}
WHERE
id = #{id}
AND fkIdSpot = #{spotUpdate.fkIdSpot}
AND (SELECT COUNT(*)
FROM spots as s
WHERE s.id = #{spotUpdate.fkIdSpot}
AND s.fkIdOrganization = #{spotUpdate.userOwner.organization.id}) = 1
</foreach>;
DELETE FROM spotsmetadatatags
WHERE fkIdSpot = #{spotUpdate.fkIdSpot}
AND id IN (
<foreach item="id" collection="spotUpdate.spotMetaDataTagIdsToDelete" separator="," >
#{id}
</foreach>
)
AND (SELECT COUNT(*)
FROM spots as s
WHERE s.id = #{spotUpdate.fkIdSpot}
AND s.fkIdOrganization = #{spotUpdate.userOwner.organization.id}) = 1;
</update>