Strapi + Postgres:无法从表中选择-语法错误

Strapi + Postgres:无法从表中选择-语法错误

我正在使用 strapi 和 postgres。我在 strapi 中创建了两个集合,分别称为“解决方案”和“参考”。

当我运行时\dt我得到以下输出:

 ...more tables
 public | references                                                 | table | postgres
 public | references_components                                      | table | postgres
 public | references_pages                                           | table | postgres
 public | references_pages_components                                | table | postgres
 public | solutions                                                  | table | postgres
 public | solutions_components                                       | table | postgres
 public | solutions_pages                                            | table | postgres
 public | solutions_pages_components

现在我想SELECT在表“解决方案”上运行一个,它的工作原理是: SELECT * FROM solutions;

但是当我跑步时SELECT * FROM references;我得到:

ERROR:  syntax error at or near "references"
LINE 1: SELECT * FROM references;

我已经检查过是否有锁,但什么也没有。运行后\z references输出以下结果:

                                   Access privileges
 Schema |    Name    | Type  |     Access privileges     | Column privileges | Policies
--------+------------+-------+---------------------------+-------------------+----------
 public | references | table | postgres=arwdDxt/postgres |                   |
(1 row)

可能出了什么问题?表名为“引用”可能存在问题吗?这个问题发生在我的本地机器上,也发生在我们的暂存服务器上,所以我不认为这是我的本地 postgres 设置的问题。

我还检查了权限

SELECT table_catalog, table_schema, table_name, privilege_type                                                                                                                                                                   
 FROM   information_schema.table_privileges WHERE  grantee = 'postgres'

给出以下输出(向右滚动):

 mytable     | public             | references                                                 | INSERT
 mytable     | public             | references                                                 | SELECT
 mytable     | public             | references                                                 | UPDATE
 mytable     | public             | references                                                 | DELETE
 mytable     | public             | references                                                 | TRUNCATE
 mytable     | public             | references                                                 | REFERENCES
 mytable     | public             | references                                                 | TRIGGER

答案1

问题是该表名为“references”,而 Postgres 显然不喜欢这个名字。将该表命名为“my_references”或“referencess”是可行的。

template1=# CREATE TABLE references (id bigint NOT NULL);
ERROR:  syntax error at or near "references"
LINE 1: CREATE TABLE references (id bigint NOT NULL);

这有效:

template1=# CREATE TABLE referencesss (id bigint NOT NULL);
CREATE TABLE

相关内容