当我们创建一个表如何高举SQLITE以将datetime的默认值设置为“now”时?

时间:2011-10-16 17:22:00

标签: sql sqlite datetime

我们有类似的东西:

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

我们希望每次创建新记录时自动将modified字段填入now字段。在我们创建表时,我们是否可以高举SQLite它必须做这样的事情,或者当我们填写一行时我们应该总是插入now

2 个答案:

答案 0 :(得分:2)

您可以在列规范中使用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语法文档的column definition部分。

答案 1 :(得分:1)

CREATE TABLE IF NOT NOT EXISTS文件  (encoded_url varchar(65)UNIQUE NOT NULL主键,修改后的DEFAULT(datetime('now','localtime'))NOT NULL);