2010-08-22 83 views
5

我正在使用PostgreSQL 8.1.11。postgresql插入多行 - 失敗

我正在失去理智。爲什麼我不能使用基本的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多行而不是放置幾個INSERT。

+0

你有錯誤消息?它究竟是什麼意思? – pleasedontbelong 2010-08-22 11:51:26

+0

向我們顯示錯誤消息,我們可以幫助您。逗號不是問題。 PS。 8.1.11已過時,最新的8.1版本爲8.1.21,今年也將停止服務。開始升級到更新的版本。 – 2010-08-22 11:51:35

+0

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 2010-08-22 13:08:10

回答

14

多行INSERT語法不PostgreSQL的8.1的支持,你需要升級到8.2或更高版本(如果你今天升級,你真的應該升級到8.4,而不是8.2!)

的另一個原因是,正如弗蘭克在評論中提到的那樣,8.1版本將在11月份報廢,因此確實在時間開始調查升級。

1

語法正確,您確定問題出現在逗號中嗎?

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 
);