Uruchamiam sqlite3 w wersji 3.7.7, unix 11.4.2 za pomocą tego polecenia:
sqlite3 auction.db
gdzie aukcja.db nie została jeszcze utworzona.
sqlite> auction.db < create.sql;
daje mi ten błąd: near "auction": syntax error
Jak mogę uruchomić skrypt?
.read
komendę bezpośrednio zsqlite3
poleceniem:sqlite3 autction.db '.read create.sql'
.Chcesz wprowadzić
create.sql
dosqlite3
z powłoki, a nie z samego SQLite:Wersja SQLite w SQLite nie obsługuje
<
plików, twoja powłoka tak.źródło
<
jako przekierowanie danych wejściowych. (Np. PowerShell.)<
natychmiast opuści monit SQLite i zwróci kod błędu do powłoki..read file.sql
pozostawi znak zachęty i-init file.sql
zawsze zwróci 0, więc<
jest najlepszy do tworzenia skryptów. Jest również wieloplatformowy, w przeciwieństwie do tego,.read
który nie obsługuje ścieżek systemu Windows.Myślę, że aby wykonać proste zapytania i wrócić do mojego skryptu powłoki, to działa dobrze:
$ sqlite3 example.db 'SELECT * FROM some_table;'
źródło
sqlite3 example.db 'SELECT * FROM some_table;'
, zamiastsqlite3
odczytuje polecenia do wykonania nie tylko zstdin
, ale także z ostatniego argumentu.Dla tych, którzy używają PowerShell
źródło
Jeśli używasz CMD systemu Windows, możesz użyć tego polecenia, aby utworzyć bazę danych przy użyciu sqlite3
Jeśli nie masz bazy danych o tej nazwie sqlite3 utworzy ją, a jeśli już ją masz, i tak ją uruchomi, ale z błędem "TABLENAME już istnieje", myślę, że możesz również użyć tego polecenia do zmiany już istniejącego baza danych (ale nie jestem pewien)
źródło