1

次の SQL ステートメントを持つ PhpPgAdmin (PostGreSQL db) でビューを作成しようとしています。

DELETE FROM myTable WHERE myTable.error IS NULL;

PhpPgAdmin で次のエラーが表示されます。

エラー: 文字 59 の "DELETE" またはその近くで構文エラーが発生しました ステートメント内: CREATE OR REPLACE VIEW "Schema1"."空のエラーを削除" AS DELETE FROM myTable WHERE myTable.error IS NULL;

私が知る限り、この SQL ステートメントは有効であり、テーブルに対する削除権限があります。ビューでは DELETE ステートメントを使用できませんか? 私が間違っていることはありますか?

4

1 に答える 1

4

ビューは、SELECT ステートメントからのデータのみを表示するために使用されます (通常、SELECT が複雑な場合)。ビューには、DELETES、UPDATES、または INSERTS を含めることはできません。

おそらく、関数が必要ですか?

編集: OMG Ponies が指摘しているように、更新可能なビューを使用できますが、既存のビューに DELETE を発行し、RULE を使用してクエリを DELETE として書き換えます。

また、ビューで副作用として DELETE を実行する関数呼び出しをラップしないでください。それは予期せぬことであり、イエスはこれが起こるたびに子犬を撃ちます.

于 2010-06-30T17:27:43.617 に答える