sql >> Database >  >> RDS >> Mysql

Hoe krijg ik een willekeurige standaardwaarde voor een kolom in MySQL/Rails

Migraties worden alleen uitgevoerd wanneer u een database aanmaakt of wijzigingen aanbrengt in de structuur van de database, niet wanneer u een nieuw record opslaat. Mikhail heeft gelijk in het suggereren van een before_save terugbellen. U kunt zoiets in uw model doen:

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

Merk op dat RANDOM() werkt voor PostgreSQL en SQLite, maar niet voor MySQL. Voor MySQL moet je RAND() . gebruiken in plaats daarvan.




  1. Willekeurige tekens invoegen in de MYSQL-database

  2. Verschillende meldingen selecteren en een duidelijker meldingsbericht voorbereiden

  3. 2 manieren om de Juliaanse dag terug te geven in SQLite

  4. MySQL uitvoeren/starten zonder installatie op Windows