PostgreSQL错误:INSERT语句中不存在关系

时间:2016-12-17 19:22:44

标签: node.js postgresql pg

我正在尝试将我的代码插入到名为thoughtentries的表中。它位于public架构中。我可以使用psql连接到我的数据库时运行该命令:

INSERT INTO thoughtentries VALUES('12/17/2016 14:10', 'hi');

第一列是character类型,长度为17.第二列的类型为text

当我的代码尝试使用上面的相同命令INSERT时,我在日志中收到错误:

ERROR: relation "thoughtentries" does not exist at character 13 STATEMENT: INSERT INTO thoughtentries VALUES('12/17/2016 14:11', 'hi');

我使用pgpg-format格式化命令。这是我的代码:

client.connect(function (err) {
  if (err) throw err
  app.listen(3000, function () {
    console.log('listening on 3000')
  })
  var textToDB = format('INSERT INTO thoughtentries VALUES(%s, %s);', timestamp, "'hi'")
  client.query(textToDB, function (err, result) {
    if (err) {
      console.log(err)
    }
    console.log(result)
    client.end(function (err) {
      if (err) throw err
    })
  })
})

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

您是否确认该表实际上是在<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>架构中创建的?

public

一旦您确认了这一点,我就会看到两种可能的解释:

  1. 您错误地连接到其他数据库。在同一会话中验证:

    SELECT *
    FROM   information_schema.tables
    WHERE  table_name = 'thoughtentries';
    
  2. 您的select current_database(); 设置不包含search_path架构。如果是这种情况,您可以对表进行架构限定以进行修复:public

  3. 除此之外:将时间戳保存为数据类型public.thoughtentries,而不是timestamp 实际上,根本不要使用character(17)

相关问题