2017-04-05 40 views
0

我有一張桌子和一個複合類型:PSQL自定義類型插入結果NULL

CREATE TYPE server AS (
    id  text, 
    load int 
) 
CREATE TABLE live_log (
    id    serial  PRIMARY KEY, 
    edges   server[], 
    origins   server[], 
    time   time  NOT NULL, 
    date   date  NOT NULL, 
    day    text 
) 

我試圖插入live_log表中的一行:

INSERT INTO live_log(edges, origins, day, date, time) 
VALUES (
    ARRAY[ROW('edge1', 20),ROW('edge2', 30)]::server[], 
    ARRAY[ROW('origin1', 20),ROW('origin2', 30)]::server[], 
    'Monday', 
    '11-01-1994', 
    '11:00:30' 
); 

但插入的結果無論INSERT查詢中有任何更改,複合類型數組都保持爲空。 my db results

任何人都可以幫我弄清楚我的INSERT有什麼問題嗎?

回答

0

這是ambaresing。由於某種原因,DBeaver拒絕顯示覆合類型數組。控制檯psql界面顯示更全面的輸出。

console output

0

寫SELECT查詢投陣列文本和DBeaver會給你的服務器陣列的表示:

SELECT 
    id, 
    edges::text, 
    origins::text, 
    time, 
    date, 
    day 
FROM live_log 

DBeaver Output Window

DBeaver不知道如何代表「服務器」類型。從我所知道的,相對於標準的Postgres類型,如果類型不匹配的一個,它撈出並拋出以下DBeaver檢查:

org.jkiss.dbeaver.model.exec.DBCException:無法解析結構類型「服務器」

儘管無法直接打開表格對象並使用此方法查看「數據」選項卡,但可以根據表格創建視圖以便於檢查。

另外,serge-rider通常會響應通過GitHub提交的功能請求。不想代表他說話,但這可能是一個提高的情況。