Below you will find pages that utilize the taxonomy term “Transaction”
Posts
read more
Transaction for Update
Introduction
(This is for Mysql. Postgresql has different mechanism like RETURNING)
func (s *Service) UnenrollMembership(
ctx context.Context,
accountID string,
) error {
s.membershipRepo.UnenrollMembership(
ctx,
accountID,
)
if err != nil {
return err
}
s.produceUnenrollmentEvent(ctx, accountID)
}
func (s *ChannelMembershipRepo) UnenrollChannelMembership(ctx context.Context, accountID string) error {
params := db.UpdateMembershipEndTimeParams{
AccountID: accountID,
EndAt: sql.NullTime{
Time: time.Now(),
Valid: true,
},
}
err := s.queries.UpdateMembershipEndTime(ctx, params)
if err != nil {
return err
}
return nil
}
/* name: UpdateEnrollmentChannelMembershipEndTime :exec */
-- UpdateEnrollmentChannelMembershipEndTime for any row of a given account_id with NULL end_time, updates the end_time
-- to the given time
UPDATE membership SET end_at = sqlc.arg(end_at) WHERE account_id = ? AND (end_at IS NULL OR end_at > sqlc.arg(end_at));
SQL code generated from sqlc query: