これはこの質問と同様の問題ですが、欠落している列には主キーを含む意味のあるデフォルト値があるため、欠落している列に NA を入力したくありません。
R から SQLite テーブルに追加しようとしています。テーブルには自動生成されたフィールド、特に主キーと 2 つのタイムスタンプ値があります。最初のタイムスタンプは作成日で、2 番目のタイムスタンプは変更日です。
テーブル構造は次のとおりです。
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)
また、データは書き込まれません。