Rozhraní příkazového řádku SQLite má praktický tečkový příkaz s názvem .mode
, která vám umožňuje změnit způsob formátování výsledků dotazu.
Jedna z hodnot, kterou můžete s tímto příkazem použít, je insert
. Použití této hodnoty způsobí, že všechny následné výsledky dotazu budou formátovány jako INSERT
SQL prohlášení.
Výchozí nastavení SQLite
Nejprve se podívejme, jak mohou vypadat vaše běžné výsledky (za předpokladu, že používáte výchozí nastavení SQLite).
SELECT * FROM Products;
Výsledek:
1|Widget Holder|139.5 2|Widget Opener|89.7 3|Widgets - 6 Pack|374.2 4|Blue Widget|63.0
Výsledky jako příkaz INSERT
Nyní si ukážeme, jak to změnit, aby byly výsledky formátovány jako SQL INSERT
prohlášení:
.mode insert Products2
Toto prohlášení specifikuje Produkty2 jako tabulku, do které budou data vložena. Budete muset zadat název tabulky, do které chcete vložit data.
Nyní, když spustím předchozí SELECT
znovu se zobrazí jako INSERT
prohlášení.
SELECT * FROM Products;
Výsledek:
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);
Uložit tento formát
Když otevřete SQLite v novém okně terminálu, tato nastavení ztratíte. Jinými slovy, SQLite se vrátí zpět ke svému výchozímu výstupnímu formátu (což je seznam oddělený svislou čarou).
Ve skutečnosti však můžete zadat své vlastní výchozí nastavení uložením výše uvedených nastavení do textového souboru.
Chcete-li to provést, zadejte do textového souboru následující:
.mode insert NewTable
Poté tento soubor uložte jako .sqliterc
ve vašem/(uživatelově) domovském adresáři.
Nyní, když se připojíte k SQLite v novém okně terminálu, použije tato nastavení namísto výchozích nastavení SQLite.
Tento příklad používá jako cílovou tabulku NewTable, ale můžete použít, co chcete.
Je zřejmé, že jediný problém s tím je, že pokud se změní, budete muset změnit název tabulky. A pokud s tím potřebujete mít potíže, může být jednodušší to jednoduše změnit za běhu pomocí .mode insert NewTable
(místo toho, abyste museli najít/nahradit název tabulky). V každém případě je to možnost, pokud ji potřebujete.