SQL 使用 Heroku CLI、Postgres 时出现语法错误

SQL syntax error using Heroku CLI, Postgres

我正在使用 Heroku CLI 连接到我的 Heroku webapp 的 postgres 数据库,并想将初始用户插入到用户 table。

当我 运行 SELECT * FROM user; 我得到我的结果就好了。

但是当我想插入相同的 table 时,例如:

INSERT INTO user (username, email, password_hash, admin, isactive) VALUES ('John Doe', 'john@example.com', 'randompassword','1','1');

它向我抛出错误,指向 table 名称:

错误:“用户”处或附近的语法错误 第 1 行:插入用户(用户名、电子邮件……

(箭头指向用户中的 u)

我迷路了...Heroku 是否使用了一些奇怪的 SQL 语法?它不支持插入吗? 怎么回事?

不得不使用 public.user

(在执行 \d+ user 时注意到 table 名称是 public.user )

正如 Chris 在下面指出的那样 - 这通常不是问题。 对于我的所有其他 tables,我非常喜欢 table 仅使用 table 进行查询 - 而不必在其前面加上 public.

话虽如此,Heroku 似乎在存储数据库用户的地方创建了一个自己的用户 table(用于连接到数据库本身)。

所以事实证明这很可能是一个歧义问题,因为 Heroku 创建了自己的 user table,但我的模型也有一个 user table。

如果我 (SELECT) 只查询 user - 我得到 'Heroku's table.

(您似乎无法插入此 table,因此出现描述不当的错误)

如果我查询 public.user - 我会得到我自己的 table。

如果只有错误指定... :)