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。
如果只有错误指定... :)
我正在使用 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。
如果只有错误指定... :)