Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak uzyskać losową wartość domyślną dla kolumny w MySQL/Rails?

Migracje są uruchamiane tylko podczas tworzenia bazy danych lub wprowadzania zmian w strukturze bazy danych, a nie podczas zapisywania nowego rekordu. Michaił słusznie proponuje before_save oddzwonić. W swoim modelu możesz zrobić coś takiego:

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

Zauważ, że RANDOM() działa dla PostgreSQL i SQLite, ale nie dla MySQL. Dla MySQL musisz użyć RAND() zamiast tego.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Maksimum grupowe

  2. Jak przechowywać dane zawierające cytaty w MySQL?

  3. InnoDB mySQL nie może ustawić ON DELETE SET DEFAULT'. Jak ustawić?

  4. Jak znaleźć nazwę tabeli, z której losowo wybrany obraz?

  5. Jak utworzyć bazę danych MySQL za pomocą interfejsu API cPanel