2016-01-11 2 views
2

Я использую скрипт для создания операторов CREATE для таблиц и хочу вставить эти инструкции в командную оболочку SQLite. К сожалению, он работает не так, как ожидалось, потому что разрыв строки, похоже, вызывает проблемы.Как вставить многострочные операторы SQL в оболочку sqlite3

Когда я скопировать следующий пример таблицы

CREATE TABLE ExampleTable (
    columnA INTEGER, 
    columnB VARCHAR(2), 
    columnC INTEGER 
); 

в SQLite командной оболочки, я получаю этот результат:

sqlite>  CREATE TABLE ExampleTable (
    ...> 

и оболочка ожидает ввода, пока не будет нажата точка с запятой (;) , Связано ли это с разделителем? Я попытался установить его на ';' вручную, но эффекта не было. Я ожидал, что оболочка примет команды независимо от формата входной строки. Сама же команда работает, например, в Firefox Addon SQLite Manager, также я могу прочитать их из файла. Тем не менее, для быстрого теста я предпочел бы просто вставлять инструкции CREATE. Я уверен, что это очень легко сделать, я просто не мог найти правильный намек. Благодаря!

+0

Вы вставили только первую строку. Это, кажется, проблема с вашим текстовым редактором или оболочкой. –

+0

многозначная вставка, поддерживаемая SQLite с версии 3.7.11. Возможно, у вас более старая версия. – Jaur

+0

@CL: Я скопировал полное определение таблицы, и оболочка sqlite перестала после первой строки, ожидающей ввода. Я могу копировать одни и те же утверждения в оболочку MySQL без этого явления. Моя версия sqlite: SQLite версия 3.9.2 2015-11-02 18:31:45 – Stefan

ответ

0

Этот вопрос обсуждается in this forum.

То, что я нашел:

  • SQLITE оболочки v.3.14.1 - имеет этот вопрос;
  • оболочка sqlite v.3.8.2 - не имеет этой проблемы;
  • sqlite shell v.3.16.2 (последний бинарный файл, который вы можете скачать на данный момент) - не имеет этой проблемы;

Таким образом, вы можете просто загрузить новую версию.

Смежные вопросы