Существует ли способ составить таблицу в sqlite3, который имеет столбец даты и времени, к которому это принимает значение по умолчанию 'теперь'?
Следующее утверждение возвращает синтаксическую ошибку:
create table tbl1(id int primary key, dt datetime default datetime('now'));
Обновление: вот является корректная ddl любезность Неба Sanders:
create table tbl1(id int primary key, dt datetime default current_timestamp);
Попробуйте это:
create table tbl1(id int primary key, dt datetime default current_timestamp);
Справочная информация:
Ограничение DEFAULT определяет значение по умолчанию для использования при выполнении INSERT. Это значение может быть NULL, строковая константа, число или постоянное выражение, заключенное в круглые скобки. Значение по умолчанию может также быть одним из специальных ключевых слов, не зависящих от конкретного случая CURRENT_TIME, CURRENT_DATE или CURRENT_TIMESTAMP. Если значение является NULL, строковой константой или числом, оно вставляется в столбец всякий раз, когда оператор INSERT, который не указывает значение для столбца выполняется. Если значение CURRENT_TIME, CURRENT_DATE или CURRENT_TIMESTAMP, то в столбец вставляется текущая дата и/или время UTC вставляется в столбцы. Для CURRENT_TIME формат - HH:MM:SS. Для CURRENT_DATE, ГГГГ-ММ-ДД. Формат для CURRENT_TIMESTAMP - "YYYY-MM-DD HH:MM:SS".
... default (datetime(current_timestamp))
Выражение, следующее за default
, должно быть заключено в круглые скобки. Эта форма полезна, если вы хотите выполнить арифметику даты с использованием функций или модификаторов даты и времени SQLite .