SQLite
 sql >> Baza danych >  >> RDS >> SQLite

Wyprowadzanie wyników zapytania SQLite jako instrukcji INSERT

Interfejs wiersza poleceń SQLite ma przydatne polecenie z kropką o nazwie .mode , który umożliwia zmianę sposobu formatowania wyników zapytania.

Jedną z wartości, których możesz użyć z tym poleceniem, jest insert . Użycie tej wartości spowoduje, że wszystkie kolejne wyniki zapytania zostaną sformatowane jako SQL INSERT oświadczenie.

Domyślne ustawienia SQLite

Po pierwsze, oto jak mogą wyglądać Twoje normalne wyniki (zakładając, że używasz domyślnych ustawień SQLite).

SELECT * FROM Products;

Wynik:

1|Widget Holder|139.5
2|Widget Opener|89.7
3|Widgets - 6 Pack|374.2
4|Blue Widget|63.0

Wyniki jako INSERT Statement

Oto jak to zmienić, aby wyniki były sformatowane jako SQL INSERT oświadczenie:

.mode insert Products2

To stwierdzenie określa Produkty2 jako tabelę, do której zostaną wstawione dane. Musisz podać nazwę tabeli, do której chcesz wstawić dane.

Teraz, kiedy uruchamiam poprzedni SELECT ponownie, są one wyprowadzane jako INSERT oświadczenie.

SELECT * FROM Products;

Wynik:

INSERT INTO Products2 VALUES(1,'Widget Holder',139.49999999999999999);
INSERT INTO Products2 VALUES(2,'Widget Opener',89.700000000000002838);
INSERT INTO Products2 VALUES(3,'Widgets - 6 Pack',374.19999999999998862);
INSERT INTO Products2 VALUES(4,'Blue Widget',63.000000000000000001);

Zapisz ten format

Gdy otworzysz SQLite w nowym oknie terminala, utracisz te ustawienia. Innymi słowy, SQLite powróci do swojego domyślnego formatu wyjściowego (który jest listą oddzieloną pionami).

Możesz jednak określić własne ustawienia domyślne, zapisując powyższe ustawienia w pliku tekstowym.

Aby to zrobić, wprowadź do pliku tekstowego:

.mode insert NewTable

Następnie zapisz ten plik jako .sqliterc w twoim/(użytkownika) katalogu domowym.

Teraz, gdy połączysz się z SQLite w nowym oknie terminala, użyje on tych ustawień zamiast domyślnych ustawień SQLite.

Ten przykład używa NewTable jako tabeli docelowej, ale możesz użyć tego, co chcesz.

Oczywiście jedyny problem z wykonaniem tego polega na tym, że będziesz musiał zmienić nazwę tabeli, jeśli się zmieni. A jeśli musisz zadać sobie trud, łatwiej będzie po prostu zmienić to w locie za pomocą .mode insert NewTable (zamiast szukania/podmieniania nazwy tabeli). W każdym razie jest to opcja, jeśli jej potrzebujesz.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Data i godzina SQLite

  2. Jak mogę zaktualizować pole mojego pokrętła za pomocą danych wprowadzonych przez użytkownika w EditText?

  3. SQL:Sortuj według priorytetu, ale wstaw 0 na końcu

  4. Usuń zapytanie i odśwież w ListView w Androidzie (sqlite)

  5. Biblioteka Android Room nie może skopiować bazy danych z zasobu