Когда мы создаем таблицу, как вычислить SQLITE, чтобы установить значение по умолчанию для datetime в `now`? - PullRequest
0 голосов
/ 16 октября 2011

У нас есть что-то вроде:

CREATE TABLE IF NOT EXISTS files
 (encoded_url varchar(65) UNIQUE NOT NULL primary key, modified DATETIME NOT NULL);

Мы хотим, чтобы каждый раз, когда создавалась новая запись, она автоматически заполняла свое поле modified временем now.Можем ли мы вычислить SQLite, что он должен делать это при создании таблицы, или мы всегда должны вставлять now при заполнении строки?

Ответы [ 2 ]

2 голосов
/ 16 октября 2011

Вы можете использовать default CURRENT_TIMESTAMP в спецификации столбца:

sqlite> create table t (a datetime default CURRENT_TIMESTAMP, b text);
sqlite> insert into t(b) values ('hello');
sqlite> select * from t;
2011-10-16 17:29:54|hello
sqlite> insert into t(b) values ('hello again');
sqlite> select * from t;
2011-10-16 17:29:54|hello
2011-10-16 17:30:04|hello again

Существуют и другие параметры даты / времени, описанные в определении столбца в документации по синтаксису create table.

1 голос
/ 16 октября 2011

CREATE TABLE, ЕСЛИ НЕ СУЩЕСТВУЕТ файлы (encoded_url varchar (65) первичный ключ UNIQUE NOT NULL, модифицированный DEFAULT (datetime ('now', 'localtime')) NOT NULL);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...