sql >> Database teknologi >  >> RDS >> Mysql

Hvordan får jeg en tilfældig standardværdi for en kolonne i MySQL/Rails

Migreringer køres kun, når du opretter en database eller foretager ændringer i strukturen af ​​databasen, ikke når du gemmer en ny post. Mikhail har ret i at foreslå en before_save ring tilbage. Du kan gøre sådan noget i din model:

class Model < ActiveRecord::Base
  before_save :set_empty_color_to_random_value

  def set_empty_color_to_random_value
    self.color = Color.order("RANDOM()").first.color if self.color.empty?
  end
end

Bemærk, at RANDOM() virker til PostgreSQL og SQLite, men ikke til MySQL. For MySQL skal du bruge RAND() i stedet.




  1. Returner en liste over partitionsfunktioner i SQL Server (T-SQL)

  2. Ting du bør vide, før du lærer Oracle

  3. sql/mysql-filter, der kun inkluderer den maksimale værdi

  4. Indsætter en tid i mysql-databasen i java