我在heroku中托管了一个rails应用程序。我有一个带有内容列的问题表。内容列包含问题的单词。例如,如果您查询。 Question.first.content,你会得到“你好,你好吗?”。我总共有8个问题。我想手动进入数据库并更改这些问题。
我尝试使用此命令在heroku上运行终端:
heroku pg:psql
我使用此查询来更改记录的内容列
UPDATE Questions
SET content="What country does this story orginate? (Japan)"
但是我收到此错误消息:
错误:专栏“这个故事在哪个国家?(日本)”不存在 第2行:SET内容=“这个故事在哪个国家?(日本)”......
更改问题内容列的正确查询是什么?
答案 0 :(得分:5)
事实证明我可以做heroku run console
。进入控制台后,我可以执行Question.find(1).update_attributes(:content=>'how are you?')
等活动记录查询,并进行更新。无论出于何种原因heroku run rails console
没有使用活动记录查询更新记录,只是返回查询成功。
答案 1 :(得分:2)
SQL对字符串文字使用单引号,对标识符使用双引号(例如表名和列名),这就是您收到有关未知列的投诉的原因。修复很简单,使用单引号作为字符串文字:
update questions set content = '...' where ...
某些数据库允许您对字符串使用双引号,但这是非标准的,应该避免使用。