id, teaching_class_id, student_user_id, admin_class_id, status, join_reason, join_time, exit_time, create_time
insert into teaching_class_student
id,teaching_class_id,student_user_id,admin_class_id,status,join_reason,join_time,exit_time,create_time,#{id,jdbcType=VARCHAR},#{teachingClassId,jdbcType=VARCHAR},#{studentUserId,jdbcType=VARCHAR},#{adminClassId,jdbcType=VARCHAR},#{status,jdbcType=VARCHAR},#{joinReason,jdbcType=VARCHAR},#{joinTime,jdbcType=TIMESTAMP},#{exitTime,jdbcType=TIMESTAMP},#{createTime,jdbcType=TIMESTAMP},
update teaching_class_student
set status = 'EXITED',
exit_time = CURRENT_TIMESTAMP
where student_user_id = #{studentUserId,jdbcType=VARCHAR}
and status = 'IN_PROGRESS'
and teaching_class_id != #{teachingClassId,jdbcType=VARCHAR}
update teaching_class_student
set status = 'IN_PROGRESS',
admin_class_id = #{adminClassId,jdbcType=VARCHAR},
join_reason = #{joinReason,jdbcType=VARCHAR},
join_time = CURRENT_TIMESTAMP,
exit_time = null
where student_user_id = #{studentUserId,jdbcType=VARCHAR}
and teaching_class_id = #{teachingClassId,jdbcType=VARCHAR}
delete from teaching_class_student
where teaching_class_id = #{teachingClassId,jdbcType=VARCHAR}
update teaching_class_student
set status = 'EXITED',
exit_time = CURRENT_TIMESTAMP
where student_user_id = #{studentUserId,jdbcType=VARCHAR}
and teaching_class_id = #{teachingClassId,jdbcType=VARCHAR}
and status = 'IN_PROGRESS'