Можно ли создать столбец datetime со значением по умолчанию в sqlite3?

есть ли способ создать таблицу в sqlite3, которая имеет столбец datetime по умолчанию "сейчас"?

следующий оператор возвращает синтаксическую ошибку:

create table tbl1(id int primary key, dt datetime default datetime('now'));

обновление: вот правильный ddl любезно Небо Сандерс:

create table tbl1(id int primary key, dt datetime default current_timestamp);

4 ответов


попробуйте это:

create table tbl1(id int primary key, dt datetime default current_timestamp);

Справочная информация:

ограничение по умолчанию указывает значение по умолчанию для использования при выполнении ВСТАВЛЯТЬ. Значение может быть NULL, a строковая константа, число или постоянное выражение, заключенное в скобки. Значение по умолчанию может также быть одним из специальных case-независимые ключевые слова CURRENT_TIME, CURRENT_DATE или ТЕКУЩАЯ_ОТМЕТКА_ВРЕМЕНИ. Если значение NULL, строковая константа или число, it вставляется в столбец всякий раз оператор INSERT, который не указать значение для столбца выполненный. Если значение CURRENT_TIME, CURRENT_DATE или Current_timestamp, то ток Дата и/или время вставляется столбец. В текущее время, в формат HH: MM: SS. Для current_date используется, ГГГГ-ММ-ДД. Формат CURRENT_TIMESTAMP - " гггг-ММ-ДД HH: MM: SS".

от http://www.sqlite.org/lang_createtable.html


... default (datetime(current_timestamp))

выражение, следующее default должны быть в скобках. Эта форма полезна, если вы хотите выполнить арифметику дат с помощью SQLite функции даты и времени или модификаторы.


CURRENT_TIMESTAMP является буквальным значением, как 'mystring'


вы можете использовать следующий запрос для использования текущего значения даты в таблице

create table tablename (date_field_name Created_on default CURRENT_DATE);