Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm cách nào để nhận giá trị mặc định ngẫu nhiên cho một cột trong MySQL / Rails

Quá trình di chuyển chỉ được chạy khi bạn tạo cơ sở dữ liệu hoặc thực hiện các thay đổi đối với cấu trúc của cơ sở dữ liệu, không phải khi lưu bản ghi mới. Mikhail đã đúng khi đề xuất before_save gọi lại. Bạn có thể làm điều gì đó như thế này trong mô hình của mình:

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

Lưu ý rằng RANDOM() hoạt động cho PostgreSQL và SQLite, nhưng không hoạt động cho MySQL. Đối với MySQL, bạn phải sử dụng RAND() thay vào đó.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL bind-address trong Docker container

  2. chọn các giá trị duy nhất từ ​​một cột

  3. Làm cách nào để lấy danh sách cơ sở dữ liệu MySQL trong PHP bằng PDO?

  4. Tìm nạp các hàng trong bảng cơ sở dữ liệu MySQL bằng MySQL C API và C ++

  5. INNODB có được bật theo mặc định trong MySQL không?