Hãy xem xét kịch bản tạo bảng bên dưới:
create_table :foo do |t|
t.datetime :starts_at, :null => false
end
Có thể đặt giá trị mặc định là thời gian hiện tại không?
Tôi đang cố gắng tìm một DB độc lập tương đương trong rails cho các định nghĩa cột SQL được đưa ra bên dưới:
Cú pháp Oracle
start_at DATE DEFAULT SYSDATE()
Cú pháp MySQL
start_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
HOẶC LÀ
start_at DATETIME DEFAULT NOW()
CURRENT_TIMESTAMP
sẽ là thời điểm bắt đầu giao dịch hiện tại, vì vậy nhiều bản ghi được tạo trong cùng một giao dịch sẽ nhận được cùng giá trị đó. Nếu bạn muốn thời gian hiện tại thực sự mà câu lệnh thực thi (bỏ qua ngữ cảnh giao dịch), hãy kiểm traCLOCK_TIMESTAMP
.