我正试图让代码在表中插入一行名为thoughtentries
。它在public
模式中。当使用psql
连接到数据库时,我能够运行该命令:INSERT INTO thoughtentries VALUES('12/17/2016 14:10', 'hi');
第一列为character
型,长17。第二列是text
类型。
当我尝试使用上面的相同命令插入代码时,我的日志中会出现错误:ERROR: relation "thoughtentries" does not exist at character 13
STATEMENT: INSERT INTO thoughtentries VALUES('12/17/2016 14:11', 'hi');
我正在使用pg
和pg-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
})
})
})
我该怎么解决这个问题?
最佳答案
您是否验证了表实际上是在public
模式中创建的?
SELECT *
FROM information_schema.tables
WHERE table_name = 'thoughtentries';
一旦你证实了这一点,我看到还有两种可能的解释:
您错误地连接到另一个数据库。在同一会话中,验证:
select current_database();
search_path
设置不包括public
架构。如果是这种情况,您可以使用schema限定要修复的表:public.thoughtentries
How does the search_path influence identifier resolution and the "current schema"
旁白:将时间戳保存为数据类型
timestamp
,而不是character(17)
。实际上,根本不用
character(n)
:Any downsides of using data type "text" for storing strings?