SQL 查询无法识别的唯一标识符
Unique identifier not recognized by SQL query
我正在制作一个 table 供用户使用 SQLite 在 Shiny 中填写。在每个会话结束时,我想删除包含唯一 sessionID 的所有条目:
library(RSQLite)
library(pool)
library(DBI)
#Generates unique token. For example "ce20ca2792c26a702653ce54896fc10a"
sessionID <- session$token
pool <- dbPool(RSQLite::SQLite(), dbname = "db.sqlite")
df <- data.frame( sessionID=character(),
name=character(),
group=character(),
stringsAsFactors = FALSE)
dbWriteTable(pool, "user_data", df, overwrite=FALSE, append=TRUE)
-------------#Code to fill out the table-----------------
在会话结束时,我使用以下方法删除特定于会话的条目:
dbExecute(pool, sprintf('DELETE FROM "user_data" WHERE "sessionID" == (%s)', sessionID))
我收到以下错误:
Warning: Error in result_create: no such column: ce20ca2792c26a702653ce54896fc10a
如果我用随机生成的数字替换会话 ID,例如“4078540723057”,条目将被毫无问题地删除。为什么无法识别 session$token?
由于 sessionId
列是 SQLite 数据库中的文本,因此 SQLite 需要用单引号将文字值括起来。通常你会为此使用准备好的语句,但你可以尝试:
dbExecute(pool, sprintf("DELETE FROM user_data WHERE sessionID = '%s'", sessionID))
在此处放弃使用准备语句的需要可能是合理的,因为您的脚本未 open/accessible 到外部。
我正在制作一个 table 供用户使用 SQLite 在 Shiny 中填写。在每个会话结束时,我想删除包含唯一 sessionID 的所有条目:
library(RSQLite)
library(pool)
library(DBI)
#Generates unique token. For example "ce20ca2792c26a702653ce54896fc10a"
sessionID <- session$token
pool <- dbPool(RSQLite::SQLite(), dbname = "db.sqlite")
df <- data.frame( sessionID=character(),
name=character(),
group=character(),
stringsAsFactors = FALSE)
dbWriteTable(pool, "user_data", df, overwrite=FALSE, append=TRUE)
-------------#Code to fill out the table-----------------
在会话结束时,我使用以下方法删除特定于会话的条目:
dbExecute(pool, sprintf('DELETE FROM "user_data" WHERE "sessionID" == (%s)', sessionID))
我收到以下错误:
Warning: Error in result_create: no such column: ce20ca2792c26a702653ce54896fc10a
如果我用随机生成的数字替换会话 ID,例如“4078540723057”,条目将被毫无问题地删除。为什么无法识别 session$token?
由于 sessionId
列是 SQLite 数据库中的文本,因此 SQLite 需要用单引号将文字值括起来。通常你会为此使用准备好的语句,但你可以尝试:
dbExecute(pool, sprintf("DELETE FROM user_data WHERE sessionID = '%s'", sessionID))
在此处放弃使用准备语句的需要可能是合理的,因为您的脚本未 open/accessible 到外部。