Неожиданный токен в операторе SQL

Я использую файл odb в LibreOfficeBase и пытаюсь вставить сразу несколько строк.

Я использую следующий код:

INSERT INTO RELATIONSHIP_BTWN_PEOPLE ("RelationID", "SubjectPersonID", "RelationType", "ObjectPersonID")
VALUES (11501, 9163, 'Parent Of',9165),
VALUES (11502, 9164, 'Parent Of',9165),
VALUES (11503, 9165, 'Child Of',9163),
VALUES (11504, 9165, 'Child Of',9164);

Я получаю следующую ошибку:

Неожиданный токен в выражении [,]

Но когда я убираю запятые, я получаю ошибку

Неожиданный оператор VALUES

Я знаю, что код работает, потому что он вводит первую строку перед [,]

Два ответа, которые я видел для этой проблемы:

  1. Это результат форматированного текста (т.е. написанного в чем-то вроде Microsoft Word), но я написал это прямо в поле Command SQL.
  2. Это результат использования зарезервированного ключевого слова, но я не вижу, что можно было бы зарезервировать в этом коде.

person Tali Sanderson    schedule 08.10.2018    source источник
comment
Вам нужен один VALUES =› INSERT INTO RELATIONSHIP_BTWN_PEOPLE ("RelationID","SubjectPersonID","RelationType", "ObjectPersonID") VALUES (11501, 9163, 'Parent Of',9165), (11502, 9164, 'Parent Of',9165), (11503, 9165, 'Child Of',9163), (11504, 9165, 'Child Of',9164);   -  person Lukasz Szozda    schedule 08.10.2018
comment
Спасибо, Лукаш! Я пробовал это - и это все еще дает мне неожиданную ошибку запятой   -  person Tali Sanderson    schedule 08.10.2018


Ответы (2)


вы должны опустить второй и последующие values. Пытаться:

  INSERT INTO RELATIONSHIP_BTWN_PEOPLE ("RelationID","SubjectPersonID","RelationType", "ObjectPersonID")
    VALUES (11501, 9163, 'Parent Of',9165),
    (11502, 9164, 'Parent Of',9165),
    (11503, 9165, 'Child Of',9163),
    (11504, 9165, 'Child Of',9164);
person apomene    schedule 08.10.2018
comment
Спасибо! Это по-прежнему дает мне неожиданную ошибку tpken: в операторе [,]. - person Tali Sanderson; 08.10.2018

Вам нужно 4 оператора вставки:

INSERT INTO RELATIONSHIP_BTWN_PEOPLE ("RelationID","SubjectPersonID","RelationType", "ObjectPersonID") VALUES (11501, 9163, 'Parent Of',9165);
INSERT INTO RELATIONSHIP_BTWN_PEOPLE ("RelationID","SubjectPersonID","RelationType", "ObjectPersonID")    VALUES (11502, 9164, 'Parent Of',9165);
INSERT INTO RELATIONSHIP_BTWN_PEOPLE ("RelationID","SubjectPersonID","RelationType", "ObjectPersonID")    VALUES (11503, 9165, 'Child Of',9163);
INSERT INTO RELATIONSHIP_BTWN_PEOPLE ("RelationID","SubjectPersonID","RelationType", "ObjectPersonID")    VALUES (11504, 9165, 'Child Of',9164);
person StephaneM    schedule 08.10.2018
comment
Это зависит от СУБД в фоновом режиме. Если это стандартная HSQLDB (или Firebird для самой последней версии LibreOffice), также возможен один оператор INSERT. - person a_horse_with_no_name; 08.10.2018
comment
Я думаю, что это стандартная HSQLDB - person Tali Sanderson; 08.10.2018