Postgres - 转换为布尔值

Sha*_*aun -1 sql database postgresql boolean

我正在尝试更新Postgres数据库以设置布尔值但我收到以下错误

没有运算符匹配给定的名称和参数类型.您可能需要添加显式类型转换.

我已经删除了表格描述以显示它的结构.

       Column       |            Type             | Modifiers 
--------------------+-----------------------------+-----------
 archived           | boolean                     | 
Run Code Online (Sandbox Code Playgroud)

db中的列当前为空,因此我没有其他用作比较.

我尝试过以下方法:

UPDATE table_name SET archived=TRUE WHERE id=52;
UPDATE table_name SET archived='t' WHERE id=52;
UPDATE table_name SET archived='1' WHERE id=52;
UPDATE table_name SET archived='t'::boolean WHERE id=52;
Run Code Online (Sandbox Code Playgroud)

这些都没有奏效.

如何将我的UPDATE转换为布尔值?

更新:完整错误消息

play_mercury=# UPDATE opportunities SET archived=TRUE WHERE id=(52,55,35,17,36,22,7,2,27,15,10,9,13,5,34,40,30,23,21,8,26,18,3,42,25,20,41,28,19,14,39,44,16,24,4,33,54,47,29,38,64);
ERROR:  operator does not exist: bigint = record
HINT:  No operator matches the given name and argument type(s). You may need to add explicit type casts.
Run Code Online (Sandbox Code Playgroud)

ype*_*eᵀᴹ 5

问题在于 WHERE id=(52,55,...)

使用: WHERE id IN (52,55,...)

  • 显而易见,你从未尝试过`UPDATE ... WHERE id = 52;`请,下次,请尝试发布您尝试的确切语句并给出错误.否则,你会让人们更难以帮助你. (4认同)