sql >> Databáze >  >> RDS >> Mysql

Jak získám náhodnou výchozí hodnotu pro sloupec v MySQL/Rails

Migrace se spouští pouze při vytváření databáze nebo provádění změn ve struktuře databáze, nikoli při ukládání nového záznamu. Michail má pravdu, když navrhuje before_save zpětné volání. Ve svém modelu můžete udělat něco takového:

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

Všimněte si, že RANDOM() funguje pro PostgreSQL a SQLite, ale ne pro MySQL. Pro MySQL musíte použít RAND() místo toho.




  1. Jak uložím řetězec delší než 4000 znaků v databázi Oracle pomocí Java/JDBC?

  2. SQL Server 2008 Vertikální data na vodorovnou

  3. Problém s vložením znaků MySQL UTF-8

  4. Seskupte příspěvky podle data ve Wordpressu