2017-05-04 79 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” } –