Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara mendapatkan nilai default acak untuk kolom di MySQL/Rails

Migrasi hanya dijalankan saat Anda membuat database atau membuat perubahan pada struktur database, bukan saat menyimpan rekaman baru. Mikhail benar dalam menyarankan before_save panggilan balik Anda dapat melakukan sesuatu seperti ini dalam model Anda:

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

Perhatikan bahwa RANDOM() bekerja untuk PostgreSQL dan SQLite, tetapi tidak untuk MySQL. Untuk MySQL Anda harus menggunakan RAND() sebagai gantinya.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara membuat modul Ulang tahun mendatang di Rails?

  2. AttributeError:modul 'mysql' tidak memiliki atribut 'konektor'

  3. Gunakan daftar Python dalam kueri SQL untuk nama kolom

  4. Kepraktisan beberapa database per klien vs satu database

  5. Django / MySQL:Bagaimana melakukan Transaksi Otonom (hanya melakukan sub-set kueri)?