PostgreSQL 与 SQL 服务器中的参数化查询
Parameterized query in PostgreSQL vs SQL Server
在我的一个 R 项目中,我使用以下代码将一些用户信息插入 PostgreSQL 数据库,但现在我想将其切换到 SQL 服务器。不幸的是,这是失败的。
library(DBI)
conn <- #database connection
# data$data is a list
dbExecute(
conn,
"INSERT INTO users (user_uuid, user_firstname, user_lastname, user_email,
user_role, owner_uuid, user_password, flag_user_active) VALUES (, , , , , , , TRUE)",
params = c(
list(user_uuid),
list(user_password_encrypted),
unname(data$data)
)
)
我感觉 SQL 服务器处理参数化查询的方式与 PostgreSQL 不同,但不幸的是,我无法找到关于如何修改它以使其运行良好的明确答案。我希望有人能随时获得这个答案。谢谢!
下面的代码在 SQL 服务器上完成了工作,但它不如问题中适用于 PostgreSQL 的代码好。主要缺点是您不能像在 PostgreSQL 中那样引用 VALUES 中的变量。
library(DBI)
conn <- #database connection
# data$data is a list
dbExecute(
conn,
"INSERT INTO users (user_uuid, user_firstname, user_lastname, user_email,
user_role, owner_uuid, user_password, flag_user_active) VALUES (?, ?, ?, ?, ?, ?)",
params = c(
list(user_uuid),
list(user_password_encrypted),
unname(data$data)
)
)
注意参数的顺序需要和INSERT语句中的顺序一致。
在我的一个 R 项目中,我使用以下代码将一些用户信息插入 PostgreSQL 数据库,但现在我想将其切换到 SQL 服务器。不幸的是,这是失败的。
library(DBI)
conn <- #database connection
# data$data is a list
dbExecute(
conn,
"INSERT INTO users (user_uuid, user_firstname, user_lastname, user_email,
user_role, owner_uuid, user_password, flag_user_active) VALUES (, , , , , , , TRUE)",
params = c(
list(user_uuid),
list(user_password_encrypted),
unname(data$data)
)
)
我感觉 SQL 服务器处理参数化查询的方式与 PostgreSQL 不同,但不幸的是,我无法找到关于如何修改它以使其运行良好的明确答案。我希望有人能随时获得这个答案。谢谢!
下面的代码在 SQL 服务器上完成了工作,但它不如问题中适用于 PostgreSQL 的代码好。主要缺点是您不能像在 PostgreSQL 中那样引用 VALUES 中的变量。
library(DBI)
conn <- #database connection
# data$data is a list
dbExecute(
conn,
"INSERT INTO users (user_uuid, user_firstname, user_lastname, user_email,
user_role, owner_uuid, user_password, flag_user_active) VALUES (?, ?, ?, ?, ?, ?)",
params = c(
list(user_uuid),
list(user_password_encrypted),
unname(data$data)
)
)
注意参数的顺序需要和INSERT语句中的顺序一致。