Рассмотрим сценарий создания таблицы ниже:
create_table :foo do |t|
t.datetime :starts_at, :null => false
end
Можно ли установить значение по умолчанию как текущее время?
Я пытаюсь найти независимый от БД эквивалент в рельсах для определений столбцов SQL, приведенных ниже:
Синтаксис Oracle
start_at DATE DEFAULT SYSDATE()
Синтаксис MySQL
start_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
ИЛИ
start_at DATETIME DEFAULT NOW()
CURRENT_TIMESTAMPбудет время начала текущей транзакции, поэтому несколько записей, созданных в одной транзакции, получат одно и то же значение. Если вам нужно фактическое текущее время выполнения инструкции (игнорируя контекст транзакции), проверьтеCLOCK_TIMESTAMP.