我正在將此數據{"curr": "testcurr","nm": "testnm"}
添加到視圖中。使用觸發功能不能在視圖中插入新行
然後運行一個觸發器函數來插入原始表中。
我從觸發器函數中收到錯誤cannot insert into column "curr" of view "tblview"
。
這裏是我的代碼的一部分:
IF (tg_op = 'INSERT') THEN
NEW."dat"= jsonb_build_object("curr",NEW.'curr','symb',NEW."symb");
NEW."ct"=now();
INSERT INTO data.tbl
(
"nm",
"dat",
"ct",
)
VALUES
(
NEW."nm",
NEW."dat"
NEW."ct"
)returning "id" into NEW.id;
END
這是我的觀點:
CREATE OR REPLACE VIEW data.tblview AS
SELECT gn.id,
gn.nm,
((gn.dat ->> 'curr'::text))::character varying(64) AS curr,
((gn.dat ->> 'symb'::text))::character varying(64) AS symb,
gn.ct
FROM data.gn
那麼究竟是爲什麼我不能插入新行的原因是什麼?
你不能插入到視圖中。視圖是RO對象。基本上看,只是一個選擇規則。它只會選擇 - 沒有保存任何數據 –