$to_insert_stmt = q{ SELECT * FROM scratch S WHERE session_id = ? AND NOT EXISTS ( SELECT 1 FROM real_data WHERE key_val1 = S.key_val1 AND ... ) }; $to_update_stmt = q{ SELECT * FROM scratch S WHERE session_id = ? AND EXISTS ( SELECT 1 FROM real_data WHERE key_val1 = S.key_val1 AND ... ) };