2017-05-04 78 views
-1

我想插入一個id的數組到一個文件,但創建一個表時,我用int,它有另一個表的引用現在如何將數組值存儲到特定的字段? 據我所知,列必須是相同的類型,我也看到有人試圖解決這個外鍵陣列問題已經: 也我試過ELEMENT根據這個文件,但沒有成功。請別人幫我在這裏https://blog.2ndquadrant.com/postgresql-9-3-development-array-element-foreign-keys/插入數組到postgresql

db.query('CREATE TABLE IF NOT EXISTS departments_users(_id SERIAL NOT NULL UNIQUE PRIMARY KEY,user_id int REFERENCES companyUser ON DELETE CASCADE,department_id int REFERENCES departments ON DELETE CASCADE)'); 

exports.addCompanyUser = function(data, callback) { 
    db.query('INSERT INTO departments_users(user_id,department_id) VALUES($1,$2) RETURNING *', [companyuseraccess.rows[0]._id, data.department]).then(function(departments_users) {  
    }) 
} 
+0

http://stackoverflow.com/q/43776122/5315974 –

回答

1

你不必與ARRAY的dataType任何字段所以基本上你不能插入陣列進入該領域。如果你想放在陣列中的字段更改其數據類型爲ARRAY第一,然後你可以

INSERT INTO "some_table" ("id","array_field","some_text_field") 
VALUES (1,ARRAY['value1','value2']::TEXT[],'active') RETURNING * 

希望這有助於。讓我知道如果我可以進一步幫助

+0

但@hannan我們已經創建了5個表相互引用我需要存儲多個id只有部門所以做你有任何想法的數組字段的外鍵約束嗎?請 –

+0

我不認爲你正在談論的'ELEMENT REFERENCES'存在於postgres中。我嘗試使用'ELEMENT REFERENCES'創建一個表,它沒有工作 – Hannan

+0

並且爲您的答案我得到這個錯誤{ 「name」:「error」, 「length」:144, 「severity」:「ERROR 「, 」file「:」parse_param.c「, 」line「:」221「」, 「code」:「42P08」, 「detail」:「text versus integer」, 「position」:「61」 , 「routine」:「variable_coerce_param_hook」 } –