2017-05-04 64 views
1

嘗試以整數存儲數組值。這是我的代碼。這是錯的嗎?將數組值存儲爲整數

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" 
} 

回答

1

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); 
}) 
+0

是我刪除雙引號和我收到這樣的'你需要重寫或鑄expression' – katy

+0

這意味着醚'$ 1'是不同的數據類型,那麼「名」列或「student_id」列不是整數[]數據類型。但這是完全不同的問題 –

+0

名稱列是字符,但student_id是整數。我需要存儲多個ID到student_id列,所以你有任何想法的數組字段的外鍵約束? – katy