Подтвердить что ты не робот

Sqlite3 вызывает `...>` вместо `sqlite>`

Я следую учебнику для начинающих до sqlite3. Первым шагом является создание новой базы данных. Поэтому я ввожу имя (movies.db).

Я ожидаю получить еще одну приглашение sqlite> в следующей строке и продолжить работу с учебником, но вместо этого получаю lame ...>, после которого я могу ввести любые гибкие, которые я хочу. Ясно, что это плохо.

Как выглядит мое командное приглашение:

SQLite version 3.8.1 2013-10-17 12:57:35
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> $ sqlite3 movies.db
   ...> gibberish
   ...> dsds
   ...> sdada
   ...> gfgys
   ...> a
   ...> Aaaaarrrgh!
   ...>

Как мне заставить sqlite3 нормально работать для меня?

Простите мою новичку. Надеюсь, я сформулировал этот вопрос таким образом, который мог бы помочь другим новинкам тоже.

4b9b3361

Ответ 1

Sqlite работает нормально. Однако команда sqlite movies.db должна выводиться из командной строки системы, а не из интерактивной оболочки Sqlite. Начните с выхода из интерактивной оболочки Sqlite (.exit), а затем выполните команду создания базы данных.

В соответствии с документацией быстрого запуска:

  • В командной строке или в командной строке DOS введите: "sqlite3 test.db". Это создаст новую базу данных с именем "test.db". (Если хотите, вы можете использовать другое имя.)

  • Введите команды SQL в приглашение для создания и заполнения новой базы данных.

Как только команда sqlite movies.db будет правильно выполнена из вашей системной командной строки, вы автоматически поместите ее в интерактивную оболочку Sqlite, которая будет ожидать команды.

sqlite> create table tbl1(one varchar(10), two smallint);

Приглашение оболочки ...> указывает на продолжение из предыдущей строки. Как указано в сообщении, вам необходимо завершить каждую команду базы данных с помощью точки с запятой ;.

sqlite> CREATE TABLE tbl2 (
   ...>   f1 varchar(30) primary key,
   ...>   f2 text,
   ...>   f3 real
   ...> );
sqlite>

Ответ 2

Завершить утверждение с помощью.; Так что просто ударьте; затем введите, и он вернется к нормальному (после получения ошибки, потому что то, что вы набрали здесь, является плохим sql).

Что происходит, он думает, что вы все еще работаете над чем-то. Может быть полезно разбить длинные запросы на строки следующим образом:

sqlite> select title, description
   ...> from mytable
   ...> where id > 10;

И... означает, что он ждет, когда вы закончите свой запрос, который вы обозначаете точкой с запятой.

Ответ 3

Я постоянно нажимаю стрелку или стрелку влево и вникаю в это ниже. Я обнаружил, что работает только control - D.

sqlite> ^[[A
   ...> '
   ...> ;
   ...> 
   ...> ;
   ...> 
   ...> 
   ...> 
   ...> 
   ...> ^C
   ...> ^X
   ...> 
   ...> 
   ...> 
   ...> 
   ...> 
   ...> 
   ...> ^E
   ...> ^R

   ...> ^T
   ...> ^Y
   ...> ^K
   ...> ^X
   ...> quit
   ...> '
   ...> ;
   ...> /
   ...> g
   ...> 
   ...> 
   ...> .exit
   ...> )
   ...> ;
   ...> /
   ...> ;
   ...> /
   ...> /
   ...> /
   ...> /
   ...> /
   ...> /
   ...> /
   ...> /
   ...> /
   ...> /
   ...> /
   ...> >
   ...> ;
   ...> /
   ...> '/
   ...> ;
   ...> ,
   ...> ;
   ...> ^[[D
   ...> /
   ...> .quit
   ...> ∂
'  ...> Error: incomplete SQL: 

Ответ 4

Я попал в одно и то же состояние после нажатия клавиш со стрелками

sqlite> ^[[A^[[A^[[B
   ...> ;
   ... 30 more lines of randomly-typed unsuccessful characters ...
   ...> /
sqlite>

Символ прямой косой черты '/', казалось, решил это для меня.

Ответ 5

Правильно, как еще один новичок, эти эксперты не отвечают правильно на вопрос, предполагая, что мы знаем, что мы делаем, и не полностью испортили какое-либо подобие оператора SQL. Они правильно указывают, что мы должны были завершить точкой с запятой, но не смогли исправить ситуацию выхода из этой теперь бесконечной ситуации, поскольку точка с запятой не работает. В комментариях было несколько полезных вещей, которые помогли мне собрать воедино проблему. В какой-то момент первоначальной ошибки или случайного набора символов, введенных для ее исправления, вы (и я, и из того, что в Интернете говорится о куче людей) открывают какое-то утверждение, например (или [или] или "так, что; на самом деле не остановит его. Ctrl + D, конечно, работает, но он полностью закрывает программу, поэтому вы теряете все уже введенное и вам приходится возвращаться и заново настраивать файл. Очень раздражает.

Ответ - закрыть выражение, которое вы случайно открыли. Так что постарайтесь ); или же ]; или же '; или "; пока вы его не получите. Если кто-то может предложить другого оператора, которого вы можете случайно открыть, сделайте это!

Надеюсь, это поможет вам и другим людям, таким как я. Я искал слишком долго лол.

Ответ 6

Если вы введете любой из них по ошибке - ^ [[A ^ [[A ^ [[B, затем просто нажмите];

Закрытие скобки с последующей точкой с запятой делает свое дело.