2010-08-22 2 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

+0

Покажите нам сообщение об ошибке, и мы можем вам помочь. Запятая не проблема. Ps. 8.1.11 устарела, последняя версия 8.1 - 8.1.21, и в этом году тоже будет работать. Начните обновление до более новой версии. –

+0

SQL ошибка: ОШИБКА: ошибка синтаксиса или вблизи "" по характеру 111 В заявлении: INSERT INTO the_leads_details (идентификатор, lead_id, question_id, i_value, c_value) ЗНАЧЕНИЯ (1, 1, 1, NULL , '4500'), (2, 1, 2, 1, NULL); – bensiu

ответ

14

многорядные синтаксис INSERT не поддерживается в PostgreSQL 8.1, вам необходимо обновить до 8.2 или новее (и, если вы обновляете сегодня, вы действительно должны обновить до 8.4, а не 8.2!)

Другая причина в том, как отметил Фрэнк в комментарии, версия 8.1 будет завершена в конце ноября, так что это действительно время, чтобы начать расследование модернизации.

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 
); 
Смежные вопросы