r语言 - 在SQLite中用UNIQUE填充表格列



我在 R 的数据库中创建了一个表:

dbExecute(conn,"CREATE TABLE IF NOT EXISTS 'dummy' (
ID INTEGER PRIMARY KEY,
InChikey TEXT UNIQUE,
InChi TEXT NOT NULL,
Classification BLOB)")

我想用数据帧填充表,InChikey应该UNIQUE。我使用了以下命令:

dbAppendTable(conn, "dummy", dataset_class)

dataset_class是一个dataframe.但是我收到错误消息:Error: UNIQUE constraint failed: dummy.InChikey

以下是我的数据集的前 2 行:

, 0x00, 0x00, 0x00, 0x03, 0x00,0x00, 0x03, 0x00
Inchikeyinchi 分类
IVGJQMIFWABEDB-UHFFFAOYSA-NInChI=1S/C15H14S2/c1-2-4-12(5-3-1)13-6-8-14(9-7-13)15-16-10-11-17-15/h1-9,15H,10-11H2as.raw(c(0x58, 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00
BPLWLYWRZQYGSG-UHFFFAOYSA-NInChI=1S/C13H10F2/c14-13(15)12-8-6-11(7-9-12)10-4-2-1-3-5-10/h1-9,13Has.raw(c(0x58, 0x0a

问题中的测试数据和代码不会产生声明的错误。大概完整的数据集有重复,否则你试图附加dataset_class两次 - 如果下面的最后一条语句重复,我们会得到报告的错误。

library(RSQlite)
# test input in reproducible form
dataset_class <- 
structure(list(Inchikey = c("IVGJQMIFWABEDB-UHFFFAOYSA-N", "BPLWLYWRZQYGSG-UHFFFAOYSA-N"
), inchi = c("InChI=1S/C15H14S2/c1-2-4-12(5-3-1)13-6-8-14(9-7-13)15-16-10-11-17-15/h1-9,15H,10-11H2", 
"InChI=1S/C13H10F2/c14-13(15)12-8-6-11(7-9-12)10-4-2-1-3-5-10/h1-9,13H"
), Classification = c("58 0a 00 00 00 03 00 04 00 03 00 03 05 00 00 00 00 05 55 54 46 2d 38 00 00 00 fe", 
"58 0a 00 00 00 03 00 04 00 03 00 03 05 00 00 00 00 05 55 54 46 2d 38 00 00 00 fe 55 54 46 2d"
)), class = "data.frame", row.names = c(NA, -2L))
conn <- dbConnect(SQLite())
dbExecute(conn,"CREATE TABLE IF NOT EXISTS 'dummy' (
ID INTEGER PRIMARY KEY,
InChikey TEXT UNIQUE,
InChi TEXT NOT NULL,
Classification BLOB)")
## [1] 0
dbAppendTable(conn, "dummy", dataset_class)
## [1] 2

最新更新