将列UPDATE
设置为DEFAULT
值的正确方法是什么?
该文档建议仅在INSERT
语句中使用它。
drop table if exists testjulian;
create table testjulian(
jul REAL NOT NULL DEFAULT ( julianday('now'))
,whatever STRING);
insert into testJulian values(null,"a"); --null not allowed
insert into testJulian(whatever) values("b"); --default value is used
update testjulian set jul= DEFAULT ; --syntax error
update testjulian set jul= NULL ; --null not allowed
答案 0 :(得分:0)
DEFAULT关键字仅限于在创建表时使用,它是为插入时设计的。
它不能用于更新,因此语法错误。
您可以使用:-
update testjulian set jul = julianday('now');
或者,如果您真的想动态获取DEFAULT值,则可以从sqlite_master的 sql 列中提取它。
例如使用
SELECT sql FROM sqlite_master WHERE name = 'testjulian';
给你:-
创建表testjulian(jul REAL NOT NULL DEFAULT( julianday('now')),无论STRING)