这是与此问题类似的问题,但我不希望用 NA 填充缺失的列,因为缺失的列具有有意义的默认值,包括主键。
我正在尝试从 R 附加到 SQLite 表,其中该表具有一些自动生成的字段,特别是主键和两个时间戳值。第一个时间戳是创建日期,第二个时间戳是修改日期。
这是表结构:
CREATE TABLE "level1" (
"l1id" bigint(20) NOT NULL ,
"l0id" bigint(20) DEFAULT NULL,
"acid" bigint(20) DEFAULT NULL,
"cndx" int(11) DEFAULT NULL,
"repi" int(11) DEFAULT NULL,
"created_date" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
"modified_date" timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
"modified_by" varchar(100) DEFAULT NULL,
PRIMARY KEY ("l1id")
)
当我尝试使用 MySQL 做完全相同的事情时,会dbWriteTable
自动处理缺失列的默认值,并正确填充主键和 created_date(并且它会自动匹配列的顺序)。
如何使用 RSQLite 包实现相同的行为?我不确定我的数据库配置是否不正确,或者我是否需要在 R 中执行一些附加步骤?
NA
我尝试使用&预先填充缺少的字段'null'
,但在这两种情况下我都会收到错误消息:
Warning message:
In value[[3L]](cond) :
RS-DBI driver: (RS_SQLite_exec: could not execute: column l1id is not unique)
并且数据不会被写入。