Интерфейсът на командния ред на SQLite има удобна команда с точка, наречена .mode
, което ви позволява да промените начина, по който се форматират резултатите от заявката.
Една от стойностите, които можете да използвате с тази команда, е insert
. Използването на тази стойност води до това, че всички следващи резултати от заявка се форматират като SQL INSERT
изявление.
Настройки по подразбиране на SQLite
Първо, ето как могат да изглеждат нормалните ви резултати (ако приемем, че използвате настройките по подразбиране на SQLite).
SELECT * FROM Products;
Резултат:
1|Widget Holder|139.5 2|Widget Opener|89.7 3|Widgets - 6 Pack|374.2 4|Blue Widget|63.0
Резултати като INSERT оператор
Сега ето как да го промените, така че резултатите да бъдат форматирани като SQL INSERT
изявление:
.mode insert Products2
Това изявление указва Продукти2 като таблицата, в която ще бъдат вмъкнати данните. Ще трябва да посочите името на таблицата, в която искате да вмъкнете данните.
Сега, когато стартирам предишния SELECT
отново, те се извеждат като INSERT
изявление.
SELECT * FROM Products;
Резултат:
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);
Запазете този формат
Когато отворите SQLite в нов прозорец на терминала, ще загубите тези настройки. С други думи, SQLite ще се върне обратно към изходния си формат по подразбиране (който е разделен с тръби списък).
Въпреки това, вие всъщност можете да посочите вашите собствени настройки по подразбиране, като запазите горните настройки в текстов файл.
За да направите това, въведете следното в текстов файл:
.mode insert NewTable
След това запазете този файл като .sqliterc
във вашата/(на потребителя) домашна директория.
Сега, когато се свържете към SQLite в нов прозорец на терминала, той ще използва тези настройки вместо настройките на SQLite по подразбиране.
Този пример използва NewTable като целева таблица, но можете да използвате каквото пожелаете.
Очевидно единственият проблем с това е, че ще трябва да промените името на таблицата, ако се промени. И ако трябва да се затрудните да направите това, може да е по-лесно просто да го промените в движение с .mode insert NewTable
(вместо да се налага да намерите/замените името на таблицата). Във всеки случай, това е опция, ако имате нужда от нея.