![](/img/trans.png)
[英]PSQLException: The column index is out of range: 7, number of columns: 6 - Postgres beginner
[英]error: The column index is out of range: 1, number of columns: 0
我正在嘗試解決插入 Postgresql 表的問題
我看了這個類似的問題,但沒有解決我的問題
這是出現錯誤的代碼部分:
String query = "INSERT INTO reviews (nbstar, body, author, product_id) VALUES($1,$2,$3,$4)";
PreparedStatement prepareStatement = connection.prepareStatement(query);
prepareStatement.setInt(1, nbStar);
prepareStatement.setString(2, body);
prepareStatement.setString(3, author);
prepareStatement.setInt(4, productId);
boolean executed = prepareStatement.execute();
我多次嘗試更改索引號,但仍然出現相同的錯誤
這是表的架構:
誰能給我一個建議?
謝謝。
在 sql 查詢中,您想插入 5 個字段(id、nbstar、body、author、product_id)的值,但只有 4 個值 VALUES($1,$2,$3,$4)。
按照您編輯的問題進行更新,只需按如下方式修改您的查詢:
VALUES($1,$2,$3,$4)
到
VALUES(?,?,?,?)
我的問題是問號周圍有單引號,我從直接 sql 復制粘貼了查詢,所以我只是用 ? 替換了字符串。 例如Select * from datatable where id = '?'
我不得不將其更改為Select * from datatable where id = ?
對我來說,我添加了一條評論,其中包括一個問號。 傻我!
我遇到了同樣的錯誤,因為我在以下查詢中缺少最后一個 \\n,我希望這對某人有所幫助。
" order by mp.id desc\n" +
" limit 1\n" +
" ) as mge_mp\n" +
" )\n" +
"\n" +
"-- #pageable\n",
我的最后一行是
"-- #pageable",
萬一你得到這個錯誤,對於我自己的問題,我正在傳遞一個以變量旁邊的字符結尾的字段,例如:
select * from my_schema."my_table" mt
where
mt.field_2 = variable_2
and mt.field_1 = 'variable_1'
[[and cast(mt.date as DATE) = {{date_picked}}]]
-> 失敗並出現以下錯誤:列索引超出范圍:1,列數:0
變成:
select * from my_schema."my_table" mt
where
mt.field_1 = 'variable_1'
and mt.field_2 = variable_2
[[and cast(mt.date as DATE) = {{date_picked}}]]
-> 這對我有用。
對我來說,問題是在查詢字符串的末尾有一個分號。 類似的東西:
String query = "INSERT INTO reviews (nbstar, body, author, product_id) VALUES(?,?,?,?);";
注意;
附加到查詢字符串的末尾。 解決方法是將其刪除:
String query = "INSERT INTO reviews (nbstar, body, author, product_id) VALUES(?,?,?,?)";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.