我试图更新Postgres数据库设置一个布尔值,但我发现了以下错误Postgres的 - 转换成布尔
没有运营商匹配指定名称和参数类型。您可能需要 才能添加显式类型转换。
我已经减少了表格描述以显示它的结构。
Column | Type | Modifiers
--------------------+-----------------------------+-----------
archived | boolean |
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;
这些都不工作过。
如何将我的UPDATE转换为布尔值?
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.
请张贴** **完全错误消息(应该有一些指示其丢在抱怨)和ID列的定义。 'UPDATE table_name SET archived = TRUE ..'完全有效 –
所有的UPDATE格式在Postgres 8.3中都能正常工作。 – Flimzy
是'id'整数吗? –