Muszę zrzucić plik .sql lub .csv do SQLite (używam interfejsu API SQLite3). Znalazłem tylko dokumentację dotyczącą importowania / ładowania tabel, a nie całych baz danych. W tej chwili, kiedy piszę:
sqlite3prompt> .import FILENAME TABLE
Pojawia się błąd składni, ponieważ oczekuje tabeli, a nie całej bazy danych.
database
sqlite
import
sqlite-shell
happythenewsad
źródło
źródło
Odpowiedzi:
Aby zaimportować z pliku SQL, użyj:
Aby zaimportować z pliku CSV, musisz określić typ pliku i tabelę docelową:
źródło
Spróbuj zrobić to za pomocą polecenia takiego jak:
To oczywiście zadziała tylko z instrukcjami SQL w dump.sql. Nie wiem, jak zaimportować plik CSV.
źródło
.mode csv
sqlite3 database.db < dump.sql
jest TAKIE WOLNE !!! Więc użyjcat dump.sql | sqlite3 database.db
zamiast tego! : DAby przejść od SCRATCH z SQLite DB do zaimportowania CSV do tabeli:
sqlite3 <your_db_file_name>
* Zostanie utworzony jako pusty plik.CREATE TABLE <table_Name> (<field_name1> <Type>, <field_name2> <type>);
Po utworzeniu tabeli i dopasowaniu kolumn do danych z pliku możesz wykonać powyższe ...
źródło
Polecenie sqlite3 .import nie będzie działać w przypadku zwykłych danych csv, ponieważ traktuje przecinek jako separator, nawet w ciągu cytowanym w cudzysłowie.
Obejmuje to próbę ponownego zaimportowania pliku CSV utworzonego przez powłokę:
Wygląda na to, że musimy przekształcić csv w listę instrukcji Insert, albo może zadziała inny ogranicznik.
W SuperUser widziałem sugestię, aby użyć LogParser do obsługi plików csv, przyjrzę się temu.
źródło
Jeśli z przyjemnością używasz skryptu (python), istnieje skrypt w języku Python, który automatyzuje to pod adresem : https://github.com/rgrp/csv2sqlite
Spowoduje to automatyczne utworzenie tabeli, a także wykonanie podstawowych czynności związanych z odgadywaniem typów i rzutowaniem danych (np. Zorientuje się, że coś jest liczbą i ustawi typ kolumny na „prawdziwy”).
źródło
sqlite3.ProgrammingError: You must not use 8-bit bytestrings unless you use a text_factory that can interpret 8-bit bytestrings (like text_factory = str). It is highly recommended that you instead just switch your application to Unicode strings
# csv2sqlite.py {csv-file-path} {sqlite-db-path} [{table-name}]Pamiętaj, że domyślnym separatorem dla SQLite jest potok "|"
http://sqlite.awardspace.info/syntax/sqlitepg01.htm#sqlite010
źródło
SQLite jest niezwykle elastyczny, ponieważ pozwala również na polecenia kropkowe specyficzne dla SQLite w składni SQL (chociaż są one interpretowane przez CLI). Oznacza to, że możesz robić takie rzeczy.
Utwórz taką
sms
tabelę:Następnie dwa pliki:
Aby przetestować import pliku CSV przy użyciu pliku SQL, uruchom:
Podsumowując, oznacza to, że możesz użyć
.import
instrukcji w SQLite SQL, tak jak w każdym innym RDB, jak MySQL zLOAD DATA INFILE
itp. Jednak nie jest to zalecane.źródło
Sprawdź terminyql. https://gitorious.org/termsql https://gitorious.org/termsql/pages/Home
Konwertuje tekst na SQL w wierszu poleceń. (CSV to tylko tekst)
Przykład:
Domyślnie separatorem jest spacja, więc aby działał z CSV używającym przecinków, należy to zrobić w ten sposób:
alternatywnie możesz to zrobić:
Domyślnie generuje nazwy kolumn „COL0”, „COL1”, jeśli chcesz, aby używał pierwszego wiersza dla nazw kolumn, wykonaj następujące czynności:
Jeśli chcesz ustawić niestandardowe nazwy kolumn, wykonaj następujące czynności:
źródło
jeśli używasz go w systemie Windows, pamiętaj, aby dodać ścieżkę do bazy danych w „”, a także użyć podwójnego ukośnika \ w ścieżce, aby upewnić się, że system Windows ją zrozumie.
źródło
Oto jak możesz wstawić do kolumny tożsamości:
myfile.txt to plik w C: \ code \ db \ predefined \
data.db znajduje się w C: \ code \ db \
myfile.txt zawiera ciągi oddzielone znakiem nowego wiersza.
Jeśli chcesz dodać więcej kolumn, łatwiej je rozdzielić, używając pionowej kreski, która jest domyślna.
źródło
Zaimportuj swój plik csv lub sql do sqlite za pomocą phpLiteAdmin , jest doskonały.
źródło