ブールへのキャスト私はブール値を設定するには、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.
の代わりにINを使用する必要があります。**完全**エラーメッセージ(不満を言っているキャストを示すものがあるはずです)とID列の定義を投稿してください。 'UPDATE table_name SET archived = TRUE ..'は完全に有効です –
すべてのあなたのUPDATEフォーマットはPostgres 8.3でうまく動作します。 – Flimzy
'id'は整数ですか? –