我正在尝试使用Npgsql2库从PostgreSQL 10.5数据库中选择数据-我不能使用Npgsql3或Npgsql4,因为我需要支持Windows XP(最大.NET 4.0)。 我使用以下代码:
library(keras)
library(dplyr)
library(tibble)
library(tidyr)
library(stringr)
mnist <- keras::dataset_mnist()
mnist$test$x[sample(1:100,1), 1:28, 1:28] %>%
as_data_frame() %>%
rownames_to_column(var = 'y') %>%
gather(x, val, V1:V28) %>%
mutate(x = str_replace(x, 'V', '')) %>%
mutate(x = as.numeric(x),
y = as.numeric(y)) %>%
mutate(y = 28-y) %>%
ggplot(aes(x, y))+
geom_tile(aes(fill = val+1))+
coord_fixed()+
theme_void()+
theme(legend.position="none")
如果我在查询中不对TableName或ColumnName使用双引号-它将失败并显示错误:
PostgreSQL错误:42P01:关系“ TableName”不存在
使用双引号可以正常工作。
那么可以使用不带双引号的Npgsql吗?是否有国旗或其他东西?
答案 0 :(得分:2)
没有双引号,PostgreSQL将所有标识符折叠成小写。这是PostgreSQL的行为,与Npgsql没有关系-Npgsql只是在编写SQL时传递您的SQL。您可以切换到全小写的表名,在这种情况下,您不再需要使用引号。