sql >> Databasteknik >  >> RDS >> Mysql

ActiveRecord3 dödläge försök igen

Jag visste inte ens att det fanns ett plugin för att göra detta :)

Det här är vad vi använder (men du måste lägga in dödlägeskänsliga frågor själv):

# Executes the given block +retries+ times (or forever, if explicitly given nil),
# catching and retrying SQL Deadlock errors.
def retry_lock_error(retries = 100, &block)
  begin
    yield
  rescue ActiveRecord::StatementInvalid => e
    if e.message =~ /Deadlock found when trying to get lock/ and (retries.nil? || retries > 0)
      retry_lock_error(retries ? retries - 1 : nil, &block)
    else
      raise e
    end
  end
end


  1. Är det möjligt att definiera en tidsstämpelkolumn som inte är null och som inte har någon standard och inget speciellt beteende vid uppdatering?

  2. Dödar en MySQL-fråga under körning med PHP och AJAX

  3. MySQL-avgränsningssyntaxfel

  4. Skapa en kolumn för automatisk ökning i SQLite