postgresql 11错误:语法错误位于或接近`&引用;

postgresql 11错误:语法错误位于或接近`&引用;,postgresql,Postgresql,我在Pg11中安装了Mimic3数据库,并尝试使用以下代码进行查询:步骤1的解决方案 SELECT ie.subject_id, ie.hadm_id, ie.icustay_id, ie.intime, ie.outtime FROM `physionet-data.mimiciii_clinical.icustays` ie; 但我错了 ERROR: syntax error at or near "`" LINE 3: FROM `physionet-dat

我在Pg11中安装了Mimic3数据库,并尝试使用以下代码进行查询:步骤1的解决方案

SELECT ie.subject_id, ie.hadm_id, ie.icustay_id,
    ie.intime, ie.outtime
FROM `physionet-data.mimiciii_clinical.icustays` ie;
但我错了

ERROR:  syntax error at or near "`"
LINE 3: FROM `physionet-data.mimiciii_clinical.icustays` ie
             ^
, Time: 0.004000s
如果我删除了这两个反勾号,我就会得到警告

ERROR:  syntax error at or near "-"
LINE 3: FROM physionet-data.mimiciii_clinical.icustays ie
                      ^
, Time: 0.002000s
如果我用“with”来解释,它表明了错误:

ERROR:  relation "physionet-data.mimiciii_clinical.icustays" does not exist
LINE 3: FROM "physionet-data.mimiciii_clinical.icustays" ie
             ^
, Time: 0.002000s

希望有人能告诉我出了什么问题。谢谢!

Postgres不使用反勾号来引用表名,它使用双引号,不带引号的名称中不允许有点,所以您可能需要:

SELECT ie.subject_id, ie.hadm_id, ie.icustay_id,
    ie.intime, ie.outtime
FROM "physionet-data.mimiciii_clinical.icustays" ie;

但它显示了新的错误:
error:relation“physionet-data.mimiciii_clinical.icustays“不存在”
好吧,它存在吗?如果点是要作为架构分隔符,那么它们需要在引号之外。@jjane是真的,但这在Postgres中仍然没有意义,因为名称有三个部分,而不是两个。在某些系统中,如Microsoft SQL Server,这是有效的,因为它表示“database.schema.table”,但在Postgres中不能以这种方式跨数据库查询。此外,还有一个问题是,为什么在原始教程中引用了它们(带有反勾号)。您可以在PostgreSQL中使用三个部分,只要第一个部分与您所连接的数据库的名称匹配——这有点奇怪,但也有可能。也许无论是为哪个数据库编写的,都会将点放在刻度中,我不知道其他数据库在这方面做了什么。