问题描述
我正在创建一个接受来自服务器的记录的 sqlite3 表。应该有一个日期/文本列也有一个 datetime
DEFAULT 值,这样我就可以同步一条时间与服务器记录不同的记录。
我在此论坛上从 here 找到了解决方案。问题是它在执行表创建脚本时给了我以下错误:sqlite3.OperationalError: default value of column [updated_at] is not constant
。
表已创建:
cur.execute('CREATE TABLE IF NOT EXISTS emp_tb(\
emp_id INTEGER PRIMARY KEY NOT NULL,\
emp_names TEXT NOT NULL,\
emp_number TEXT NOT NULL UNIQUE,\
ent_id INTEGER NOT NULL,\
active INTEGER NOT NULL DEFAULT "0",\
updated_at TEXT NULL DEFAULT (datetime("Now","localtime")),\
syncstatus INTEGER NOT NULL DEFAULT "0")')
我应该创建触发器吗?或者如何在格式 ("YYYY-MM-DD HH:MM:SS.SSS")
中设置默认值,以防更新错过某个位置?
解决方法
对日期时间选项使用单引号 ('
)。正如评论中提到的,它们必须被转义(因为查询是用单引号分隔的)。