2

1秒の値に基づいて、1つのテーブルのブール列を更新しようとしています。

UPDATE channels
SET contains_photos = TRUE 
WHERE id IN (SELECT unnest(ancestors) 
    FROM channel_tree WHERE id = 11329);

このchannel_tree.ancestors列には、チャネルIDの配列が含まれています。上記は次のエラーで失敗しています:

エラー:このセッションでアクティブなクエリによって使用されているため、「channel_tree」を切り捨てることはできません

最優先の目標は、特定のチャネルcontains_photosすべてについて列をtrueに設定することです。ancestorsこのエラーを軽減する最善の方法、または代替の解決策を知っている人はいますか?

4

1 に答える 1

1

エラーがTRUNCATEと表示されている理由がわかりません。表示できない切り捨てを実行しているトリガーまたはルールがあるようです。

同じクエリを実行する別の方法を次に示します。

UPDATE channels
SET contains_photos = TRUE 
WHERE id = ANY (SELECT ancestors 
    FROM channel_tree WHERE id = 11329);

または参加して:

UPDATE channels
SET contains_photos = TRUE
FROM channel_tree
WHERE channels.id = ANY (channel_tree.ancestors)
      AND channel_tree.id = 11329;
于 2012-06-14T05:17:40.310 に答える