sqlite3.OperationalError: default DATE value of column is not constant
sqlite3.OperationalError: default DATE value of column is not constant
我正在创建一个接受来自服务器的记录的 sqlite3 table。应该有一个 date/text 列也有一个 datetime
DEFAULT 值,这样我就可以同步一条与服务器记录时间不同的记录。
我在这个论坛上从 here 找到了解决方案。问题是在执行 table 创建脚本时出现以下错误:sqlite3.OperationalError: default value of column [updated_at] is not constant
.
Table 已创建:
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")
的默认值?
对日期时间选项使用单引号 ('
)。如评论中所述,必须对它们进行转义(因为查询是用单引号分隔的)。
我正在创建一个接受来自服务器的记录的 sqlite3 table。应该有一个 date/text 列也有一个 datetime
DEFAULT 值,这样我就可以同步一条与服务器记录时间不同的记录。
我在这个论坛上从 here 找到了解决方案。问题是在执行 table 创建脚本时出现以下错误:sqlite3.OperationalError: default value of column [updated_at] is not constant
.
Table 已创建:
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")
的默认值?
对日期时间选项使用单引号 ('
)。如评论中所述,必须对它们进行转义(因为查询是用单引号分隔的)。