Postgresql:将值更新为一个文本数据类型的列时出现问题

dja*_*ngo 0 ruby postgresql ruby-on-rails ruby-on-rails-4

我有一个表,有一个字段(item_value)是一个文本数据类型,我试图通过psql更新:

UPDATE table1 SET item_value="{ value:'BOX',id:'2580'}" where id=643
Run Code Online (Sandbox Code Playgroud)

此查询显示

 column "{ value:'BOX',id:'2580'}" does not exist
Run Code Online (Sandbox Code Playgroud)

但是,当我从rails控制台执行此操作时,这将起作用

t = Table1.find 643
t.item_value = "{ value:'BOX',id:'2580'}"
t.save

t.item_value.class
=> String 
Run Code Online (Sandbox Code Playgroud)

该查询有任何问题吗?任何与演员有关的事情

Sar*_*tts 5

这是因为您使用"而不是'.尝试使用:

UPDATE table1 SET item_value='{ value:"BOX",id:"2580"}' where id=643
Run Code Online (Sandbox Code Playgroud)

因此,您需要更改JSON字符串中的引号 "