将数组值存储为整数
问题描述:
尝试以整数存储数组值。这是我的代码。这是错的吗?将数组值存储为整数
db.query('INSERT INTO users(name,student_id) VALUES($1,ARRAY["$2","$3"]::INTEGER[]) RETURNING *', [data.name, data.id])
.then(function(user) { })
.catch(function(err) {
return callback(null, err);
})
,但我得到这个错误
{
"name": "error",
"length": 102,
"severity": "ERROR",
"code": "42703",
"position": "70",
"file": "parse_relation.c",
"line": "3090",
"routine": "errorMissingColumn"
}
答
42703
意味着undefined_column
- 出现这种情况,是因为你周围使用"$2","$3"
双引号和双引号识别数据库对象(在查询的这部分 - 列)。删除它们是:
db.query('INSERT INTO users(name,student_id) VALUES($1,ARRAY[$2,$3]::INTEGER[]) RETURNING *', [data.name, data.id])
.then(function(user) { })
.catch(function(err) {
return callback(null, err);
})
是我删除双引号和我收到这样的'你需要重写或铸expression' – katy
这意味着醚'$ 1'是不同的数据类型,那么“名”列或“student_id”列不是整数[]数据类型。但这是完全不同的问题 –
名称列是字符,但student_id是整数。我需要存储多个ID到student_id列,所以你有任何想法的数组字段的外键约束? – katy