2017-08-16 28 views
0

我正在將此數據{"curr": "testcurr","nm": "testnm"} 插入視圖。使用觸發器功能將jsonb插入表格時出現錯誤

然後運行一個觸發器函數來插入原始表中。

我從觸發器函數中收到錯誤column "curr" does not exist

這裏是我的代碼的一部分:

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 

正如你可以看到,原來的表不包含「CURR」列,但我的職務數據應該不會有什麼問題吧?

回答

1

變化:

jsonb_build_object("curr",NEW."curr","symb",NEW."symb") 

到:

jsonb_build_object('curr',NEW."curr",'symb',NEW."symb") 

https://www.postgresql.org/docs/current/static/functions-json.html 看看例子 - 讓關鍵"foo"你傳遞字符串'foo'

雙引號標識符 - 列,關係etc名稱 - 檢查https://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS

+0

謝謝,我現在得到了另一個錯誤:'不能插入視圖「tblview」的列「curr」' –

+0

顯然你試圖向視圖中插入一行,這不能由視圖原點完成。這將是不同的問題,並將需要不同的代碼示例 –

相關問題