1

私はテーブルを手に入れました

CREATE TABLE test (
   id    SERIAL,
   name  character varying NOT NULL,
   PRIMARY KEY (id)
);

ビュー

CREATE VIEW TEST_VIEW AS
SELECT id,name
FROM test;

ビューの背後にある実際のテーブルに特定の更新キューを転送したいだけです

CREATE RULE TEST_VIEW_UPDATE
AS ON UPDATE TO TEST_VIEW
DO INSTEAD UPDATE TEST;

ただし、SET ステートメントが欠落している可能性があるため、この方法ではエラーが発生します。最も一般的な方法でこれを正しく行うにはどうすればよいですか (したがって、実際に更新されるものに制限はありません)。

4

2 に答える 2

1

私の知る限り、このようにすることは不可能です。実際のコマンドを記述する必要があります。

CREATE RULE TEST_VIEW_UPDATE
AS ON UPDATE TO TEST_VIEW
DO INSTEAD UPDATE TEST set name = NEW.name, col1 = NEW.col1 where id = NEW.id;

トリガーを使用して必要なことを行うこともできます-これこのリンクを確認してください。

于 2013-09-01T17:48:53.387 に答える