PostgreSQL插入多行 - 失败

5

我正在使用PostgreSQL 8.1.11。

但是我感到很烦恼,为什么我不能使用基本的SQL语句如INSERT?

我提供:

INSERT INTO the_leads_details ( id, lead_id, question_id, i_value, c_value ) VALUES
( 1, 1, 1, NULL, '4500' ), ( 2, 1, 2,    1, NULL );

                         ^ this comma is a problem

我错过了什么?这似乎是一个基本的SQL INSERT语句,用于插入多行。我的问题是否与我的PostgreSQL版本有关?
我正在插入大量行,并希望优化插入多行而不是放置多个INSERT。

你有错误信息吗?它具体说了什么? - pleasedontbelong
展示给我们错误信息,我们可以帮助您解决问题。逗号不是问题所在。另外,8.1.11版本已经过时,最新的8.1版本是8.1.21,并且今年也将停止服务。开始升级到更新的版本吧。 - Frank Heikens
SQL错误:错误:在第111个字符处出现“,”附近的语法错误在语句中:INSERT INTO the_leads_details ( id, lead_id, question_id, i_value, c_value ) VALUES ( 1, 1, 1, NULL, '4500' ), ( 2, 1, 2, 1, NULL ); - bensiu
4个回答

14

PostgreSQL 8.1不支持多行插入语法,你需要升级到8.2或更高版本(而且如果你今天升级的话,真的应该升级到8.4而不是8.2!)

另一个原因是,正如弗兰克在评论中提到的那样,8.1版本将于11月份结束生命周期,所以现在真的是时候开始调查升级了。


4

2

我知道这是一个旧帖子,但这个方法可以解决:

INSERT INTO the_leads_details ( id, lead_id, question_id, i_value, c_value ) (
SELECT 1, 1, 1, NULL, '4500' 
UNION SELECT 2, 1, 2,    1, NULL 
);

1

语法是正确的,你确定问题在逗号上吗?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接